मैं निम्नलिखित संरचना है के अनुसार एक बेस कक्षा से एक सार विधि की वापसी प्रकार निर्दिष्ट करना:एक उप कक्षा
abstract class Base {
public abstract List<...> Get(); //What should be the generic type?
}
class SubOne : Base {
public override List<SubOne> Get() {
}
}
class SubTwo : Base {
public override List<SubTwo> Get() {
}
}
मैं एक सार विधि है कि रिटर्न जो कुछ वर्ग ठोस उप वर्ग है बनाना चाहते हैं। इसलिए, जैसा कि आप उदाहरण से देख सकते हैं, SubOne
में विधि List<SubOne>
वापस करनी चाहिए जबकि SubTwo
में विधि List<SubTwo>
वापस करनी चाहिए।
बेस क्लास में घोषित हस्ताक्षर में मैं किस प्रकार निर्दिष्ट करता हूं?
[अद्यतन]
पोस्ट जवाब के लिए धन्यवाद।
समाधान सार वर्ग सामान्य बनाने के लिए, इस तरह के की तरह है:
abstract class Base<T> {
public abstract List<T> Get();
}
class SubOne : Base<SubOne> {
public override List<SubOne> Get() {
}
}
class SubTwo : Base<SubTwo> {
public override List<SubTwo> Get() {
}
}
अपने अद्यतन/उत्तर में, आप कैसे "बेस" वर्ग है कि दोनों SubOne शामिल कर सकते हैं की एक सूची या संग्रह बनाने होगा और SubTwo वस्तुओं? –