VB.netコードをC#に変換していますが、問題が発生しています。 VB.netでは、OBJECTパラメータを使用する関数があります。これらのパラメータは、通常、私が必要とする同じメソッドを持つ2つの異なる型です。例:キャストのないC#暗黙の変換
Public Sub test(param1 as Object)
param1.show()
End Sub
のC#で、私は、関数の同じ種類を行うが、コンパイラはそれを受け入れることはありません。
public void test(object param1)
{
param1.show(); // Error on .show (not found)
}
私はおそらく何らかの方法でパラメータをキャストする必要がありますが、私は関数に異なる種類を送信する必要があります。出来ますか?
はタイプのための共通のインターフェイスまたは基本クラスを定義し、あなたのパラメータの型としてそれを使用。または、これは非常に基本的な問題であるため、それぞれの型に対して 'test()'オーバーロードを作成するだけです。 –
これはVB.NETで動作します。これは、C#で許可されていないレイトバインディング( 'Option Strict Off'を使用)のためです。これは、VB.NETでも可能なことですが、すべきではないことの例です。 'Option Strict'と 'Option Explicit'を有効にすると、VB.NETコードはコンパイルされません...イゴールの回答のインターフェイスソリューションは、両方の言語で動作します。 – CoolBots