C # को इस तरह से क्यों बनाया गया?
जैसा कि मैं इसे समझता हूं, एक इंटरफ़ेस केवल व्यवहार का वर्णन करता है, और कुछ व्यवहार को लागू करने वाले इंटरफ़ेस को लागू करने वाली कक्षाओं के लिए एक संविदात्मक दायित्व का वर्णन करने के उद्देश्य से कार्य करता है।
यदि कक्षाएं साझा पद्धति में उस व्यवहार को लागू करना चाहती हैं, तो उन्हें क्यों नहीं करना चाहिए?
यहाँ एक उदाहरण है जो मेरे मन में है:
// These items will be displayed in a list on the screen.
public interface IListItem {
string ScreenName();
...
}
public class Animal: IListItem {
// All animals will be called "Animal".
public static string ScreenName() {
return "Animal";
}
....
}
public class Person: IListItem {
private string name;
// All persons will be called by their individual names.
public string ScreenName() {
return name;
}
....
}
IListItem.ScreenName() => ScreenName()
(C # 7 सिंटैक्स का उपयोग करके) स्टैटिक विधि को कॉल करके इंटरफ़ेस विधि को स्पष्ट रूप से लागू करेगा। जब आप उस से विरासत जोड़ते हैं तो चीजें बदसूरत हो जाती हैं, हालाँकि (आपको इंटरफ़ेस को फिर से लागू करना होगा)