मान लीजिए सील करने के लिए मैं इस तरह स्पष्ट रूप से काल्पनिक सी # वर्गों की एक जोड़ी है:कैसे एक अधिरोहित संपत्ति
public abstract class Foo {
public abstract int[] LegalValues { get; }
public virtual bool IsValueLegal(int val) {
return Array.IndexOf(LegalValues, val) >= 0;
}
}
और इस:
मैं एफ # में ऐसा कैसे करते हैं? गुणों के लिए स्पष्ट कोड:
[<Sealed>]
override this.LegalValues with get() = // ...
[<Sealed>]
override this.IsValueLegal value = // ...
एक त्रुटि ट्रिगर करता है क्योंकि SealedAttribute स्पष्ट रूप से सदस्यों पर लागू नहीं किया जा सकता है। मैं निश्चित रूप से, पूरे वर्ग को सील कर सकता हूं और इस प्रकार सभी सदस्यों को सील कर सकता हूं, लेकिन (और यह वास्तव में महत्वपूर्ण है) लेकिन यह है कि मेरे पास मौजूदा वर्ग हस्ताक्षर से बिल्कुल मिलान करने का लक्ष्य है और बेस क्लास में अन्य है आभासी/अमूर्त सदस्य जो आदर्श रूप से अतिसंवेदनशील रहना चाहिए।
एचएम, मुझे यह भी पता नहीं था कि सी #/सीएलआर में अलग-अलग तरीकों को सील करना संभव था! – Brian