2016-05-31 12 views

答えて

-1

スイッチケースまたは工場パターンを使用する方法です。

+1

のようにTを制限することができますが、これは私はそれが私の例ではどのように動作するか完全にわからないコメント –

1

動的宣言を使用できます。

dynamic e = GetEmployee(); 

キャストするかEmployee型を宣言する必要はありません。ランタイムは、プロパティを引き継いで検索し、そのプロパティでナビゲートすることを許可します。

e.GetSalary(); 

たとえば、

+0

する必要があり、あなたがしてください手の込んだことができます? –

+0

次に実行時の型を確認することができますe.GetType()== typeof(Animal)またはe.GetType()== typeof(Person) –

+0

これは本当に質問に答えるわけではありません。どのようにタイプするかをテストするステートメント –

0

はい、あなたはPredicate<T> Delegate

の詳細については

を設計単にどのような方法、

PredicateBuilder.False<T> 

このT can be Person/Animalようなあなたの述語を定義することができ、一般的な使用することによりGeneric in C#

を使用編集1

Tはあなたのシナリオでは、それは単純なクラス型を指定できたりPredicateBuilderだからあなたがTを定義する必要はありません

public class YourClass 
{ 
    Public static <returnType> YourFunction<T> 
    { 
     //someAction 
    } 
} 



    //YourObject can be anything Person/Animal 
    var predicate = YourClass.YourFunction<YourObject>(); 

が必要なプロパティの最小セットを持つオブジェクトをカスタマイズすることも、何もすることができますこのシナリオでは

あなたは

class MyClass<T, U> 
    where T : class 
    where U : struct 
{ } 
+0

Tをどのように宣言しますか? –

関連する問題