同じメソッド名を持つ複数のインターフェイスからの継承
2023-10-01 16:23:47
質問
複数のインターフェースを継承したクラスがあり、それらのインターフェースが同じ名前のメソッドを持っている場合、どのようにこれらのメソッドを私のクラスで実装することができるでしょうか。また、どのインタフェースのどのメソッドを実装するかはどのように指定するのでしょうか?
どのように解決するのですか?
以下のように、明示的にインターフェースを実装することで、解決します。
public interface ITest {
void Test();
}
public interface ITest2 {
void Test();
}
public class Dual : ITest, ITest2
{
void ITest.Test() {
Console.WriteLine("ITest.Test");
}
void ITest2.Test() {
Console.WriteLine("ITest2.Test");
}
}
明示的なインターフェイスの実装を使用する場合、その関数はクラス上で公開されません。したがって、これらの関数にアクセスするためには、まずオブジェクトをインターフェース型にキャストするか、インターフェース型として宣言された変数に代入する必要があります。
var dual = new Dual();
// Call the ITest.Test() function by first assigning to an explicitly typed variable
ITest test = dual;
test.Test();
// Call the ITest2.Test() function by using a type cast.
((ITest2)dual).Test();
関連
-
[解決済み】リソースの読み込みに失敗した:ステータス500(内部サーバーエラー)のサーバーの応答)
-
[解決済み] C#でenumからint値を取得する
-
[解決済み] IDisposable インターフェースの正しい使用法
-
[解決済み] C#でベースコンストラクタを呼び出す
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み] インターフェースと抽象クラス(一般的なOO)
-
[解決済み] C#で同期メソッドから非同期メソッドを呼び出すには?
-
[解決済み] Pythonのsuper()は多重継承でどう動くのか?
-
[解決済み] インターフェースとベースクラス
-
[解決済み】大文字・小文字を区別しない「Contains(string)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】WebForms UnobtrusiveValidationModeは、jqueryのScriptResourceMappingを必要とする
-
[解決済み】"The ConnectionString property has not been initialized "を修正する方法
-
[解決済み] 'SubSonic.Schema .DatabaseColumn' 型のオブジェクトをシリアライズする際に、循環参照が検出されました。
-
[解決済み】プロジェクトビルド時のエラー。エディタでスクリプトにコンパイルエラーがあるため、Playerのビルドにエラーが発生する
-
[解決済み】リソースの読み込みに失敗した:ステータス500(内部サーバーエラー)のサーバーの応答)
-
[解決済み】なぜこのコードはInvalidOperationExceptionを投げるのですか?
-
[解決済み] UnityでOnCollisionEnterが呼ばれない
-
[解決済み】値をNULLにすることはできません。パラメータ名:source
-
[解決済み】エラー「必要なフォーマルパラメータに対応する引数が与えられていない」を解決する?
-
[解決済み】同じメソッドを持つクラスで2つのインターフェースを実装する。どのインターフェイスのメソッドがオーバーライドされるか?