私はC#(C#4 dynamic keyword - why not?)の動的機能に非常に興奮しています。特に、コードの特定のライブラリ部分では、多くのリフレクションを使用しています。C#4.0の "dynamic"キーワードはGenericsを冗長化しますか?
私の質問は二つです:
1.「ダイナミック」以下の場合のように、ジェネリックを交換するのですか?
ジェネリックメソッド:
public static void Do_Something_If_Object_Not_Null<SomeType>(SomeType ObjToTest) {
//test object is not null, regardless of its Type
if (!EqualityComparer<SomeType>.Default.Equals(ObjToTest, default(SomeType))) {
//do something
}
}
動的方法(??):
public static void Do_Something_If_Object_Not_Null(dynamic ObjToTest) {
//test object is not null, regardless of its Type?? but how?
if (ObjToTest != null) {
//do something
}
}
2.以下の場合のように、今匿名型を返すための方法を可能にする "動的" し?:
public static List<dynamic> ReturnAnonymousType() {
return MyDataContext.SomeEntities.Entity.Select(e => e.Property1, e.Property2).ToList();
}
cool、cheers
EDIT:
もう少し私の質問を通じて考えた、と回答の光の中で、私は完全にメインのジェネリック/ダイナミック質問を台無しに参照してください。彼らはまったく異なっています。そう、すべての情報をありがとう。
ただし、ポイント2はどうですか?
ダイナミックスのもうひとつの魅力的な使い方:RESTfulなWeb状況でのJSON interop - 特に問題のJSONがコールからコールへと大きく変動する場合動的オブジェクトとの間でJSONを直列化および非直列化するライブラリがあります。 – Randolpho