سؤال

هذا السؤال لديه بالفعل إجابة هنا:

أرغب في إضافة عامل تشغيل إلى الفصل الدراسي.لدي حاليا GetValue() الطريقة التي أرغب في استبدالها بـ [] المشغل أو العامل.

class A
{
    private List<int> values = new List<int>();

    public int GetValue(int index)
    {
        return values[index];
    } 
}
هل كانت مفيدة؟

المحلول

public int this[int key]
{
    get
    {
        return GetValue(key);
    }
    set
    {
        SetValue(key,value);
    }
}

نصائح أخرى

انا اؤمن ان هذا ما تبحث عنه:

الفهارس (دليل البرمجة C#)

class SampleCollection<T>
{
    private T[] arr = new T[100];
    public T this[int i]
    {
        get
        {
            return arr[i];
        }
        set
        {
            arr[i] = value;
        }
    }
}

// This class shows how client code uses the indexer
class Program
{
    static void Main(string[] args)
    {
        SampleCollection<string> stringCollection = 
            new SampleCollection<string>();
        stringCollection[0] = "Hello, World";
        System.Console.WriteLine(stringCollection[0]);
    }
}

يُسمى عامل التشغيل [] بالمفهرس.يمكنك توفير مفهرسات تأخذ عددًا صحيحًا أو سلسلة أو أي نوع آخر تريد استخدامه كمفتاح.بناء الجملة واضح ومباشر، ويتبع نفس المبادئ التي تتبعها أدوات الوصول إلى الخاصية.

على سبيل المثال، في حالتك حيث int هو المفتاح أو الفهرس:

public int this[int index]
{
  get
  {
     return GetValue(index);
  }
}

يمكنك أيضًا إضافة مجموعة وصلات بحيث يصبح المفهرس للقراءة والكتابة وليس للقراءة فقط.

public int this[int index]
{
  get
  {
     return GetValue(index);
  }

  set
  {
    SetValue(index, value);
  }
}

إذا كنت تريد الفهرسة باستخدام نوع مختلف، فما عليك سوى تغيير توقيع المفهرس.

public int this[string index]
...
public int this[int index]
{
    get
    {
        return values[index];
    }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top