📅  最后修改于: 2023-12-03 15:29:48.742000             🧑  作者: Mango
在C#中,动态对象是指在运行时才确定其类型的对象,可以使用动态对象来访问元素,方法和属性等。其中获取值也是常用的操作之一。
使用动态对象访问属性值的示例代码如下:
dynamic obj = new ExpandoObject();
obj.Name = "Tom";
Console.WriteLine(obj.Name); // 输出Tom
在上面的示例代码中,首先使用 ExpandoObject
类创建了一个动态对象 obj
,然后设置其 Name
属性的值为 "Tom"。最后通过访问 obj.Name
来获取其属性值。
此外,还可以通过 IDictionary<string, object>
的实例来访问动态对象的属性:
dynamic obj = new ExpandoObject();
obj.Name = "Tom";
var dictionary = (IDictionary<string, object>)obj;
Console.WriteLine(dictionary["Name"]); // 输出Tom
在这个示例代码中,首先使用 ExpandoObject
类创建了一个动态对象 obj
,然后设置其 Name
属性的值为 "Tom"。接着将其转换为 IDictionary<string, object>
的实例,并通过访问 dictionary["Name"]
来获取其属性值。
使用动态对象来访问元素值的示例代码如下:
dynamic obj = new ExpandoObject();
obj.Fruits = new List<string> { "apple", "banana" };
Console.WriteLine(obj.Fruits[0]); // 输出apple
在上面的示例代码中,首先使用 ExpandoObject
类创建了一个动态对象 obj
,然后设置其 Fruits
元素的值为一个 List<string>
的实例。最后通过访问 obj.Fruits[0]
来获取其元素值。
此外,还可以通过 IDictionary<string, object>
的实例来访问动态对象的元素:
dynamic obj = new ExpandoObject();
obj.Fruits = new List<string> { "apple", "banana" };
var dictionary = (IDictionary<string, object>)obj;
Console.WriteLine(((List<string>)dictionary["Fruits"])[0]); // 输出apple
在这个示例代码中,首先使用 ExpandoObject
类创建了一个动态对象 obj
,然后设置其 Fruits
元素的值为一个 List<string>
的实例。接着将其转换为 IDictionary<string, object>
的实例,并通过访问 dictionary["Fruits"]
来获取其元素值,最后再将得到的结果转换为 List<string>
的实例来访问其元素。
以上就是使用C#动态对象获取值的示例代码。通过这些示例代码,可以了解到如何使用动态对象来访问属性和元素的值。需要注意的是,动态对象的使用需要谨慎,因为其类型在运行时才确定,可能会导致运行时错误,因此应该避免滥用动态对象。