هل يلقي ilist إلى مجموعة من النوع T [] تسبب التعداد؟

StackOverflow https://stackoverflow.com/questions/2455461

  •  20-09-2019
  •  | 
  •  

سؤال

لدي طريقة تشبه:

T[] field;

public Method(IList<T> argument)
{
    this.field = (T[])argument;
}

عندما يتم تنفيذ جثة الطريقة ، هل يحدث التعداد أثناء طاقم العمل؟ هل سيتغير ذلك إذا كان النوع الأساسي مختلفًا؟

هل كانت مفيدة؟

المحلول

لا ، لن يعدد أي شيء. سوف ينجح إما إذا argument في الحقيقة هو أ T[], ، أو رمي InvalidCastException استثناء إذا لم يكن كذلك. (أو إرجاع فارغ إذا argument باطل.)

نصائح أخرى

إذا argument هي إشارة إلى صفيف (من النوع T) ، ثم لا يوجد تعداد - إنه طاقم بسيط.

إذا argument هي إشارة إلى أ List<T> أو فئة أخرى تنفذ ilist ثم سيكون هناك استثناء من الصب. (أقول بقع لأنه قد يكون هناك ضمني أو استكشاف التحويل إلى T[] - على الأرجح لن يكون هناك).

تحرير: كما أشار جون ، لن يتم تحويل التحويل في الطريقة العامة ، وبالتالي فإن الأقواس المذكورة أعلاه غير صحيحة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top