そのインターフェイスを実装するクラスの参照を使用して、インターフェイスメソッドを呼び出す必要があります。私はそのために反射を使用していますが、私のコードは動作していませんし、nullオブジェクト参照例外が発生しています。コードは以下のとおりです。クラスの参照を使用した呼び出しインターフェイスメソッド
interface IntA
{
void MethodFirst();
}
interface IntB
{
void MethodFirst();
}
class ClassA : IntA, IntB
{
public void MethodFirst()
{
Console.WriteLine("this.ClassA.MethodFirst");
}
void IntA.MethodFirst()
{
Console.WriteLine("IntA.ClassA.MethodFirst");
}
void IntB.MethodFirst()
{
Console.WriteLine("IntB.ClassA.MethodFirst");
}
}
class Program
{
static void Main(string[] args)
{
Type t = Type.GetType("ClassA");
t.GetMethod("MethodFirst").Invoke(Activator.CreateInstance(t,null), null);
Console.ReadLine();
}
}
私がここで間違っていることを教えてください。
は、単にあなたの方法をインターフェイスと呼び出すために、あなたのクラスをキャスト。反射は必要ありません –
おかげでM. kazem Akhgary。それは反射を使って呼び出すインタビューの質問でした。 –
反射を使用するのは専門家レベルのもので、本当に必要なときにのみ使用します。それは非常にまれです。あなたが良いプログラマーなら、あなたは決してリフレクションを必要としません;) –