📜  c#动态对象获取值 - C#(1)

📅  最后修改于: 2023-12-03 15:29:48.742000             🧑  作者: Mango

C#动态对象获取值

在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#动态对象获取值的示例代码。通过这些示例代码,可以了解到如何使用动态对象来访问属性和元素的值。需要注意的是,动态对象的使用需要谨慎,因为其类型在运行时才确定,可能会导致运行时错误,因此应该避免滥用动态对象。