जिस तरह से आप पूछ रहे हैं में
नहीं है, लेकिन आप पुराने सी ++ चाल से कुछ का उपयोग वर्गों जिसका लक्षण स्थिर निर्दिष्ट कर रहे हैं उत्पन्न करने के लिए कर सकते हैं:
abstract class Integer
{
public abstract int Get { get; }
}
public class One : Integer { public override int Get { return 1; } } }
public class Two : Integer { public override int Get { return 2; } } }
public class Three : Integer { public override int Get { return 3; } } }
public class FixedStorage<T, N> where N : Integer, new()
{
T[] storage;
public FixedStorage()
{
storage = new T[new N().Get];
}
public T Get(int i)
{
return storage[i];
}
}
इस का उपयोग करना, आप स्थानिक वर्गों को परिभाषित कर सकते हैं:
public class Vector3 : FixedStorage<float, Three> {}
public class Vector2 : FixedStorage<float, Two> {}
public class GridCell : FixedStorage<int, Two> {}
मैं इस तकनीक का उपयोग उस पुस्तकालय में करता हूं जिसमें बहुत से उप-वर्ग हैं, जहां एक नए डेटा सदस्य को जोड़ने के लिए बहुत सारे बॉयलरप्लेट की आवश्यकता होती है।
हालांकि सी # में यह संभव नहीं है, यह विकल्प में संभव है .NET दृढ़ता से टाइप की गई भाषाओं जैसे [बू] (http://boo.codehaus.org/) और [Nemerle] (http://nemerle.org/Main_Page)। –
आप केविन हैज़ार्ड और जेसन बोक –
@ जॉर्डो द्वारा .NET http://www.manning.com/hazzard में मेटाप्रोग्रामिंग पढ़ सकते हैं: बूओ एक बहुत ही अलग भाषा है और जेटब्रेन ने मस्तिष्क को किराए पर लेने के बाद सेमेरल कम या ज्यादा मृत है। शायद Script.NET उल्लेख के लायक है। –