هل يلقي ilist إلى مجموعة من النوع T [] تسبب التعداد؟
سؤال
لدي طريقة تشبه:
T[] field;
public Method(IList<T> argument)
{
this.field = (T[])argument;
}
عندما يتم تنفيذ جثة الطريقة ، هل يحدث التعداد أثناء طاقم العمل؟ هل سيتغير ذلك إذا كان النوع الأساسي مختلفًا؟
المحلول
لا ، لن يعدد أي شيء. سوف ينجح إما إذا argument
في الحقيقة هو أ T[]
, ، أو رمي InvalidCastException
استثناء إذا لم يكن كذلك. (أو إرجاع فارغ إذا argument
باطل.)
نصائح أخرى
إذا argument
هي إشارة إلى صفيف (من النوع T
) ، ثم لا يوجد تعداد - إنه طاقم بسيط.
إذا argument
هي إشارة إلى أ List<T>
أو فئة أخرى تنفذ ilist ثم سيكون هناك استثناء من الصب. (أقول بقع لأنه قد يكون هناك ضمني أو استكشاف التحويل إلى T[]
- على الأرجح لن يكون هناك).
تحرير: كما أشار جون ، لن يتم تحويل التحويل في الطريقة العامة ، وبالتالي فإن الأقواس المذكورة أعلاه غير صحيحة.
لا تنتمي إلى StackOverflow