हां interface
एक बहुत ही वैध वापसी मूल्य है। याद रखें, आप इंटरफेस की परिभाषा वापस नहीं कर रहे हैं, बल्कि उस इंटरफ़ेस के इंस्टेंस।
public interface ICar
{
public string Make { get; }
}
public class Malibu : ICar
{
public string Make { get { return "Chevrolet"; } }
}
public class Mustang : ICar
{
public string Make { get { return "Ford"; } }
}
अब आप अलग अलग ICar
उदाहरणों को अपने स्वयं के संबंधित मूल्यों है कि के एक नंबर लौट सकता है:
लाभ बहुत स्पष्ट है, निम्नलिखित कोड पर विचार करें।
लेकिन, इंटरफेस प्रयोग करने के लिए प्राथमिक कारण है, ताकि वे एक प्रसिद्ध अनुबंध में विधानसभाओं के बीच साझा किया जा सकता है, ताकि जब आप किसी एक ICar
गुजरती हैं, वे इसके बारे में कुछ नहीं पता है, लेकिन वे जानते हैं कि यह है एक Make
। इसके अलावा, वे सार्वजनिक इंटरफेस को छोड़कर इसके खिलाफ कुछ भी निष्पादित नहीं कर सकते हैं। तो यदि Mustang
में public
सदस्य Model
नामित सदस्य थे, तो वे तब तक नहीं पहुंच पाए जब तक यह इंटरफ़ेस में नहीं था।
स्रोत
2013-03-13 17:27:56
(1) हां। (2) क्योंकि यह polymorphic व्यवहार की अनुमति देता है। की –
संभव डुप्लिकेट [सी # - सूची या IList ] (http://stackoverflow.com/questions/400135/c-sharp-listt-or-ilistt) की [सूची या IList ] (https –
ken2k
संभावित डुप्लिकेट: //stackoverflow.com/questions/400135/listt-or-ilistt) – Squazz