अगर मैं इस तरह एक वर्ग है: मैं फिर से कारक कुछ स्तर परक्या कोई कन्स्ट्रक्टर दूसरे को लागू करता है तो कोई लाभ या कमी होती है?
public class Foo
{
public IEnumerable<Bar> Bars { get; set; }
public Foo()
{
Bars = new List<Bar>();
}
}
वर्ग और एक माध्यमिक निर्माता जो इस तरह पहले एक को लागू करता है जोड़ें:
public class Foo
{
public IEnumerable<Bar> Bars { get; set; }
// some more properties were added
public Foo()
{
Bars = new List<Bar>();
}
public Foo(string parameter): this()
{
.... some code here
}
}
मैं भी हो सकता था यह लिखा इस के समान:
public class Foo
{
public IEnumerable<Bar> Bars { get; set; }
// some more properties were added too
public Foo()
{
InitilizeFoo();
}
public Foo(string parameter)
{
InitilizeFoo();
.... some code here
}
private void InitializeFoo()
{
Bars = new List<Bar>();
}
}
देखकर दोनों इस परिदृश्य में काम दृष्टिकोण, वहाँ एक फायदा है या एक दूसरे के ऊपर का उपयोग करने में दोष?
उत्तराधिकारी कंसट्रक्टर अधिक कुशल है और यह कोड तेजी से निष्पादित कर रहा है या क्या कोई कमी है जिसे मैं दूसरे कार्यान्वयन को और अधिक कुशल बनाने के बारे में नहीं जानता?
मैं दोनों का उपयोग करता हूं। जब यह चेन कन्स्ट्रक्टर को एक साथ समझ में आता है, तो मैं करता हूं; लेकिन कभी-कभी (उदाहरण दिमाग में नहीं आ रहा है) मैं 'InitializeFoo()' विधि के साथ गया हूं और इसे सभी रचनाकारों से बुलाया है। – Nate
अपवाद सुरक्षा केवल एक चीज के बारे में है जिसके बारे में मुझे चिंता होगी। –