मैं एक वर्ग नाम के लिए एक उपनाम बनाना चाहता हूं। निम्नलिखित सिंटैक्स सही होगा:
public class LongClassNameOrOneThatContainsVersionsOrDomainSpecificName
{
...
}
public class MyName = LongClassNameOrOneThatContainsVersionOrDomainSpecificName;
लेकिन यह संकलन नहीं करेगा।
उदाहरण
नोट यह उदाहरण केवल सुविधा के लिए प्रदान किया गया है। संपूर्ण सिस्टम के डिज़ाइन को बदलकर इस विशेष समस्या को हल करने का प्रयास न करें। इस उदाहरण की उपस्थिति, या कमी, मूल प्रश्न को नहीं बदलती है।
कुछ मौजूदा कोड एक स्थिर वर्ग की उपस्थिति पर निर्भर करते हैं:
public static class ColorScheme
{
...
}
यह रंग योजना Outlook 2003 रंग योजना है। आउटलुक 2003 रंग योजना को बरकरार रखते हुए मैं आउटलुक 2007 रंग योजना शुरू करना चाहता हूं:
public static class Outlook2003ColorScheme
{
...
}
public static class Outlook2007ColorScheme
{
...
}
लेकिन मैं अभी भी इस तथ्य का सामना कर रहा हूं कि कोड एक स्थिर वर्ग की उपस्थिति पर निर्भर करता है ColorScheme
। मेरा पहला विचार था ColorScheme
कि मैं एक ऐसी कक्षा बनाऊं जो मुझे Outlook2003
या तो विरासत में मिले या Outlook2007
:
public static class ColorScheme : Outlook2007ColorScheme
{
}
लेकिन आप एक स्थिर वर्ग से विरासत में नहीं मिल सकते।
मेरा अगला विचार स्टैटिक ColorScheme
क्लास बनाना था , लेकिन गैर-स्टैटिक बनाना Outlook2003ColorScheme
और बनाना Outlook2007ColorScheme
। तब स्थिर ColorScheme
वर्ग में एक स्थिर चर या तो "सही" रंग योजना को इंगित कर सकता है:
public static class ColorScheme
{
private static CustomColorScheme = new Outlook2007ColorScheme();
...
}
private class CustomColorScheme
{
...
}
private class Outlook2008ColorScheme : CustomColorScheme
{
...
}
private class Outlook2003ColorScheme : CustomColorScheme
{
...
}
लेकिन इससे मुझे एक वर्ग की रचना करने की आवश्यकता होगी जो आसानी से पठनीय स्थिर रंगों के अतिरंजित गुणों से बना हो, और फिर मेरी ColorScheme
कक्षा को 30 अलग-अलग संपत्ति प्राप्तकर्ताओं को निहित वस्तु में फेंक देना होगा।
यह सिर्फ बहुत अधिक टाइपिंग है।
तो मेरा अगला विचार कक्षा को उर्फ करना था:
public static ColorScheme = Outlook2007ColorScheme;
लेकिन यह संकलन नहीं है।
मैं एक स्थिर वर्ग को दूसरे नाम में कैसे बदल सकता हूं?
अद्यतन: क्या कोई कृपया उत्तर "आप C # में ऐसा नहीं कर सकते हैं" , इसलिए मैं स्वीकार किए गए उत्तर के रूप में चिह्नित कर सकता हूं। उसी प्रश्न का उत्तर चाहने वाला कोई भी व्यक्ति इस प्रश्न को स्वीकार कर लेगा, स्वीकार किए गए उत्तर और कई वर्कअराउंड जो उपयोगी हो सकते हैं या नहीं हो सकते हैं।
मैं सिर्फ इस सवाल को बंद करना चाहता हूं।