एक स्थिर वर्ग के बजाय, आपको सिंगलटन पैटर्न के साथ एक सामान्य कक्षा का उपयोग करना चाहिए (यानी, आप रखेंगे कक्षा का एक एकल उदाहरण, शायद कक्षा में एक स्थिर संपत्ति द्वारा संदर्भित)। फिर आप विनाशक और Dispose विधि का एक विनाशक, या इससे भी बेहतर हो सकता है।
उदाहरण के लिए, यदि आप अब है:
static class MyClass
{
public static void MyMethod() {...}
}
//Using the class:
MyClass.MyMethod();
आप के बजाय होगा:
class MyClass : IDisposable
{
public static MyClass()
{
Instance=new MyClass();
}
public static MyClass Instance {get; private set;}
public void MyMethod() {...}
public void Dispose()
{
//...
}
~MyClass()
{
//Your destructor goes here
}
}
//Using the class:
MyClass.Instance.MyMethod();
(गौर करें कि उदाहरण स्थिर निर्माता है, जो पहली बार शुरू हो जाती है में बन जाता है कि कक्षा वर्ग के किसी भी सदस्य का संदर्भ दिया जाता है)
का उपयोग करने के बजाय सिंगलटन पैटर्न को लागू करने के रूप में उपयोग कर सकते हैं। धन्यवाद। मैंने अपने कोड में एक निजी गैर स्थैतिक कन्स्ट्रक्टर भी जोड़ा है, इसलिए कक्षा को कहीं और नहीं किया जा सकता है। –
यदि थ्रेडिंग का उपयोग किया जाएगा, तो कोड थ्रेड-सुरक्षित बनाने की आवश्यकता है। –
थ्रेड सुरक्षा के साथ सिंगलटन पैटर्न करने के सभी अलग-अलग तरीकों पर यहां एक अच्छी मार्गदर्शिका है। http://csharpindepth.com/Articles/General/Singleton.aspx – Naz