2011-07-22 19 views
2

Javaを使用することで、他のクラスから拡張された1つ以上のオブジェクトを必要とするメソッドを作成することができます。これを行うには、次のように記述する必要があります。は、C#のクラスから派生したオブジェクトをパラメータとして渡します。

public void method(Class<? extends class_name> Object_name) 

対応する文がC#にあるかどうかは疑問でした。誰か知っていますか?

答えて

1

まあ、それはタイプはなくオブジェクトを受け入れていますが、あなたはC#でジェネリックメソッドと少し似たような操作を行うことができます。

public void Foo<T>() where T : MyClass 

この方法ではtypeof(T)を使用できます。

あなたがタイプTと互換性のある実際のオブジェクトを指定する必要がある場合は、あなたがタイプTの通常のメソッドのパラメータとしてこれを持つことができます。

詳細が必要な場合は、より具体的な要件で質問を更新してください。

0

あなたは一般的な方法を記述してtype parameter constraintを使用することができます。

public void Method<T>(T obj) where T : YourBaseClass 
{ 
    // ... 
} 
0

私は何年もJavaでコード化していないので、<? extends構造に慣れていませんが、インターフェースや抽象クラスをメソッドに渡す方法を尋ねています。

あなたがジェネリックを使用することができ

、私はあなたがちょうどあなたがあなたのメソッドのシグネチャは、一般的な作りと制約

などを使用することができ、基本クラスに

public void Method(BaseClass baseClassParamName) 
{ 
    baseClassParamName.HasAccessToMethodsDefinedInTheBase(); 
} 
1

を使用したほうが良いと思います。

public static ObjectB GetObjectBFromInterface<T>(T item) where T : IObject 
{ 
    //Do some stuff 
} 

汎用型制約の詳細は、hereを参照してください。

関連する問題