-1
我想驗證我是否可以投出抽象和接口類。我嘗試了以下方法,但無法得到它,所以我認爲我會以錯誤的方式去解決這個問題。我可以施放抽象和接口類(如果我可以比將如何施展)?
我想驗證我是否可以投出抽象和接口類。我嘗試了以下方法,但無法得到它,所以我認爲我會以錯誤的方式去解決這個問題。我可以施放抽象和接口類(如果我可以比將如何施展)?
你的問題有點含糊。你的問題可能有很多種可能性。我曾試圖把它們送到這裏。看看它是否符合你的需求。如果沒有,那麼請評論類結構的
大廈
public abstract class MyAbClass
{
public abstract void MyM1();
}
public interface IMyInterface
{
void MyM2();
}
public class MyConcretClass1 : MyAbClass
{
public override void MyM1()
{
//Your implementation here
}
}
public class MyConcretClass2 : IMyInterface
{
public void MyM2()
{
//Your implementation here
}
}
可能性
//Following are the possibilities
//This can be done in some other class and passed to some other method
//maybe a factory pattern
MyAbClass cls1 = new MyConcretClass1();
//Will call method of MyConcretClass1
cls1.MyM1();
if (cls1 is MyConcretClass1)
{
//Do casting here
}
var cls2 = cls1 as MyConcretClass1;
if (cls2 != null)
{
//Do your stuff here
}
//This can be done in some other class and passed to some other method
//maybe a factory pattern
IMyInterface cls3 = new MyConcretClass2();
//Will call method of MyConcretClass2
cls3.MyM2();
if (cls3 is MyConcretClass2)
{
//Do casting here
}
var cls4 = cls3 as MyConcretClass2;
if (cls4 != null)
{
//Do your stuff here
}
希望這有助於
請出示你已經嘗試了什麼。而且,班級結構也很有趣。你想達到什麼目的? – Markus
我在谷歌搜索了這個問題,但沒有得到任何指定的答案,所以我在這裏提出這個問題,這就是爲什麼我得到了正確的答案。 –