इंडेक्सर्स के पास स्वचालित रूप से Item
का डिफ़ॉल्ट नाम है - जो आपकी कक्षा का नाम है। जहां तक सीएलआर का संबंध है, एक सूचकांक केवल पैरामीटर के साथ एक संपत्ति है, और आप एक संपत्ति, विधि इत्यादि के साथ समान श्रेणी के साथ घोषित नहीं कर सकते हैं।
एक विकल्प आपकी कक्षा का नाम बदलना है, इसलिए इसे Item
नहीं कहा जाता है। एक और सूचकांक के लिए प्रयुक्त "संपत्ति" का नाम बदलना होगा, [IndexerNameAttribute]
के माध्यम से।
छोटा brokenness के उदाहरण:
class Item
{
public int this[int x] { get { return 0; } }
}
नाम परिवर्तन से फिक्स्ड:
class Wibble
{
public int this[int x] { get { return 0; } }
}
या विशेषता के आधार पर:
using System.Runtime.CompilerServices;
class Item
{
[IndexerName("Bob")]
public int this[int x] { get { return 0; } }
}
स्रोत
2012-12-12 20:47:56
कि यह समझाया। धन्यवाद! मैं पहले विशेषता के तरीके पर एक नज़र डालेगा। – espvar
तो इसके बारे में भी उलझन में, धन्यवाद! – Patrick