動的オブジェクトの種類を作成する方法、2つのオブジェクトの種類の一つまたは私はpredicatebuilderを使用して、ユーザーの入力に応じてい
よりもむしろに対して述語を呼び出すことができますオブジェクト型を動的にする方法がありますか?
すなわち、
MyObject = Animal,
var predicate = PredicateBuilder.False<MyObject>
?
動的オブジェクトの種類を作成する方法、2つのオブジェクトの種類の一つまたは私はpredicatebuilderを使用して、ユーザーの入力に応じてい
よりもむしろに対して述語を呼び出すことができますオブジェクト型を動的にする方法がありますか?
すなわち、
MyObject = Animal,
var predicate = PredicateBuilder.False<MyObject>
?
スイッチケースまたは工場パターンを使用する方法です。
動的宣言を使用できます。
dynamic e = GetEmployee();
キャストするかEmployee型を宣言する必要はありません。ランタイムは、プロパティを引き継いで検索し、そのプロパティでナビゲートすることを許可します。
e.GetSalary();
たとえば、
する必要があり、あなたがしてください手の込んだことができます? –
次に実行時の型を確認することができますe.GetType()== typeof(Animal)またはe.GetType()== typeof(Person) –
これは本当に質問に答えるわけではありません。どのようにタイプするかをテストするステートメント –
はい、あなたは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
{ }
Tをどのように宣言しますか? –
のようにTを制限することができますが、これは私はそれが私の例ではどのように動作するか完全にわからないコメント –