【发布时间】:2010-10-24 02:52:33
【问题描述】:
我对 C# (C#4 dynamic keyword - why not?) 中的动态特性感到非常兴奋,尤其是因为在我的代码的某些库部分中我使用了很多反射。
我的问题有两个:
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();
}
酷,干杯
编辑:
仔细考虑我的问题,并根据答案,我发现我完全搞砸了主要的通用/动态问题。它们确实是完全不同的。是的,感谢您提供的所有信息。
第 2 点呢?
【问题讨论】:
标签: c# .net generics reflection dynamic