如果我尝试List<dynamic> list = new List<dynamic> { "blah" };
var type = list.GetType().GetGenericArguments()[0];我得到“对象”;而不是 string。如何获得“真实”的体验?输入?
2 回答
达令说
TA贡献1821条经验 获得超6个赞
首先尝试访问该值,然后确定类型。
List<dynamic> list = new List<dynamic> { "blah", 15 };
var type = list[0].GetType();
Console.WriteLine(type); // prints out System.String
type = list[1].GetType();
Console.WriteLine(type); // prints out System.Int32
如果您想要所有类型的列表,请使用 Linq:
var types = list.Select(item => item.GetType());
// print out
foreach (var t in types) {
Console.WriteLine(t);
}
杨__羊羊
TA贡献1943条经验 获得超7个赞
Object
是这里的真实类型。您可以将 C# 中的 dynamic
视为具有特殊行为的对象,其中成员绑定发生在运行时而不是编译时。对于大多数类型来说,这就像反射的捷径。
- 2 回答
- 0 关注
- 148 浏览
添加回答
举报
0/150
提交
取消