匿名タイプとObject変換
975 ワード
本論文の転載:http://www.cnblogs.com/JustRun1983/archive/2012/05/13/2497997.html
ネットの匿名タイプはとても使いやすいです。 しかし、開発中に問題がありました。匿名タイプをリターン値にすると、objectタイプになります。対応できる匿名タイプを再変換できますか?
パッケージの拡張方法の使用を推奨します。
public static class Extension {
public static T Change Type<T>(this object obj,T t) { return(T)obj }
}
ネットの匿名タイプはとても使いやすいです。 しかし、開発中に問題がありました。匿名タイプをリターン値にすると、objectタイプになります。対応できる匿名タイプを再変換できますか?
// , object
object ReturnAnonymous() {
return new { City="Prague", Name="Tomas" };
}
void Main()
{
// , object
object o = ReturnAnonymous();
// Cast ,
var typed = Cast(o, new { City="", Name="" });
Console.WriteLine("{0}, {1}", typed.City, typed.Name)
}
// Cast
T Cast<T>(object obj, T type) {
return (T)obj;
}
パッケージの拡張方法の使用を推奨します。
public static class Extension {
public static T Change Type<T>(this object obj,T t) { return(T)obj }
}