我正在對代碼進行更改,其中myFunc()
在聲明爲抽象的父類中聲明和調用。它實際上是在派生類中實現的?我知道部分類具有此屬性,其中可以將定義分割爲多個文件 - 但類A和B位於不同的名稱空間中,並且都不使用關鍵字「partial
」。在一個類中聲明並在派生部分類中實現的抽象方法
此代碼是否正確實施?或者它違反了C#語言規則?
File1.cs
namespace PQR
{
public abstract class A : UserControl
{
protected abstract void myFunc(); //no definition because it is declared abstract
}
protected void use_myFunc(int i)
{
//call myFunc(). called in a parent class,
//where it is declared abstract. And
//it is actually implemented in the derived class???
myfunc();
}
}
File2.cs
namespace ABC
{
public partial class B : PQR.A
{
protected override void myFunc()
{
//do something.
}
}
}
如果您想知道代碼是否會編譯,建議您將代碼輸入到visual studio中,或者直接調用編譯器,然後查看自己的結果。如果編譯,你不需要我們告訴你。 – Servy
是的,對。違規,沒有。 –
我不會打擾發佈一個答案,因爲你的代碼在語義上看起來是正確的。 – code4life