हो सकता है कि आप उसे स्थिर विधि उस वस्तु का एक उदाहरण देता है के साथ इस तरह से कोशिश करनी चाहिए।
var myClass = MyClass.LoadFromDirectory(@"C:\temp");
यह आपके कन्स्ट्रक्टर के बाहर प्रारंभिक कोड रखेगा, साथ ही साथ आपको "एक पंक्ति" घोषणा जो आप ढूंढ रहे हैं।
पोस्टर से नीचे से टिप्पणी पर जा रहे हैं, राज्य एक कार्यान्वयन जोड़कर इसलिए की तरह हो सकता है:
public class MyClass
{
#region Constructors
public MyClass(string directory)
{
this.Directory = directory;
}
#endregion
#region Properties
public MyClassState State {get;private set;}
private string _directory;
public string Directory
{
get { return _directory;}
private set
{
_directory = value;
if (string.IsNullOrEmpty(value))
this.State = MyClassState.Unknown;
else
this.State = MyClassState.Initialized;
}
}
#endregion
public void LoadFromDirectory()
{
if (this.State != MyClassState.Initialized || this.State != MyClassState.Loaded)
throw new InvalidStateException();
// Do loading
this.State = MyClassState.Loaded;
}
}
public class InvalidStateException : Exception {}
public enum MyClassState
{
Unknown,
Initialized,
Loaded
}
स्रोत
2009-06-08 05:57:05
अच्छा विचार, प्रारंभिकरण और कक्षा का उपयोग अक्सर काफी अलग होता है। यह अच्छी तरह से उन्हें अलग करता है। और भी अलगाव के लिए आप प्रारंभिक तर्क को कारखाने या निर्माता वर्ग में स्थानांतरित कर सकते हैं। – Mendelt