سؤال

لا يمكنني الزائد GetEnumerator () مثل

IEnumerator<T> IEnumerable<T>.GetEnumerator<T> ( T[] val1,T[] val2)

{

  .... some code

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

المحلول

ولا. مجرد خلق الأسلوب الطبيعي بدلا من ذلك، منها مثلا.

IEnumerator<T> MyCustomEnumerator<T>(T[] val1, T[] val2) {
    // some code
}

نصائح أخرى

ويمكنك أن تقترح إدخال الزائد لطريقة GetEnumerator، ولكن لا يمكن أن تكون جزءا من تنفيذ IEnumerable.

وGetEnumerator لا تأخذ المعلمات.

وماذا عن طريقة تمديد؟

وأي بمعنى:.


public static class IEnumeratorExtensions
{
    public static IEnumerator<T> GetEnumerator<T>(this IEnumerable<T> ie,
        T[] val1, T[] val2)
    {
        //your code here
    }
}

...
string[] s1;
string[] s2;

var qry = from s in new string[]{"1", "2"}
          select s;

qry.GetEnumerator(s1, s2);
...

ولكن ماذا تحاول أن تفعل في هذا "الحمل الزائد"؟ إذا كنت ترغب في دمج تلك المصفوفات اثنين من T، IEnumerable لديها بالفعل عدد من الطرق التي تأخذ الأساليب. تأكد من أنك لا إعادة اختراع العجلة!

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