從Java背景編輯,我知道,一個接口的方法不能包含在界面內碼,如下面所描述(來自here截取):爲什麼可以在C#中指定接口方法的實現?
的接口內的方法聲明之後是分號, ,但沒有大括號,因爲接口不爲其中聲明的方法提供實現 。
這是否也適用於C#?由於我已經構建了一個接口來在Visual Studio中測試這個接口,並且在接口方法的主體中指定了代碼之後,編譯器並沒有阻止我這樣做。
從Java背景編輯,我知道,一個接口的方法不能包含在界面內碼,如下面所描述(來自here截取):爲什麼可以在C#中指定接口方法的實現?
的接口內的方法聲明之後是分號, ,但沒有大括號,因爲接口不爲其中聲明的方法提供實現 。
這是否也適用於C#?由於我已經構建了一個接口來在Visual Studio中測試這個接口,並且在接口方法的主體中指定了代碼之後,編譯器並沒有阻止我這樣做。
沒有。接口只能在c#中概述方法和屬性。方法體或實現是不允許的。粘貼一些代碼可能是爲了仔細觀察問題。
謝謝,我只需要確認! – 2012-01-15 18:23:08
接口不能在C#
執行。如果你創建了下面
interface IInterface
{
void MyMethod()
{
}
}
你會得到編譯錯誤interface members cannot have a definition
接口方法是抽象的,並且不能包含方法體一個接口;他們甚至沒有默認的實現。
您是否在開始代碼時使用了正確的關鍵字?例如:
interface IExampleInterface
{
string ThisMethodReturnsString(string arg);
}
接口成員不能有定義。對於C#,java和所有面向對象的語言,這個規則是正確的。
接口不能指定實現。發佈您的示例代碼。 – 2012-01-15 18:20:08
謝謝克里斯,無需發佈代碼,因爲我只需要確認。 – 2012-01-15 18:24:47
你爲什麼不試着編譯它? – Femaref 2012-01-15 18:35:13