Hug*_*are 26 .net c# generics extension-methods anonymous-types
有什么可以使用,以确定一个类型是否实际上是一个匿名类型?例如界面等?
目标是创建以下内容......
//defined like...
public static T Get<T>(this IAnonymous obj, string prop) {
return (T)obj.GetType().GetProperty(prop).GetValue(obj, null);
}
//...
//And then used like...
var something = new { name = "John", age = 25 };
int age = something.Get<int>("age");
Run Code Online (Sandbox Code Playgroud)
或者这只是匿名类型的美丽?没有什么可以自我识别,因为它需要一个新的形状?
注意 - 我意识到你可以为对象类编写一个扩展方法,但在我看来,这看起来有点矫枉过正.
Jon*_*eet 55
编辑:下面的列表适用于C#匿名类型.VB.NET有不同的规则 - 特别是,它可以生成可变的匿名类型(默认情况下).Jared在评论中指出,命名风格也不同.基本上这都非常脆弱......
您无法在通用约束中识别它,但是:
object
但是,规范保证这一点很少 - 所以它可以在下一版本的编译器中更改,或者如果你使用Mono等.
归档时间: |
|
查看次数: |
3568 次 |
最近记录: |