gpt4 book ai didi

C# 动态对象 - 设置 "Enum"值

转载 作者:太空狗 更新时间:2023-10-30 00:05:21 28 4
gpt4 key购买 nike

我有一个动态对象 (C# 4.0),因为我想动态地为属性设置枚举值,但我没有该类型的程序集引用。关于如何执行此操作的任何想法/是否可以执行此操作?

dynamic vehicle = myObject;
vehicle.AddTires(); // working
vehicle.ConfigureEngine(); //working
vehicle.seat="Leather";//working
//Enum needs to be set for the Make
vehicle.Make = Manufacturer.Toyota; // how to do this?

最佳答案

如果 c.Make 总是有一个值(例如,它的类型是 Manufacturer,而不是 Manufacturer? 或者该属性不存在于所有在你设置之前):

c.Make = Enum.Parse(c.Make.GetType(), "Toyota");

如果这对您不起作用,要使用这种方法,您需要以某种方式获取对类型 Manufacturer 的引用。这可能有多复杂取决于您的动态类型是如何设置的。您可能需要采取的另一种方法(例如,如果它是 Manufacturer? 并且可能为 null)是使用反射来获取 Make 属性以查找它是什么类型。

关于C# 动态对象 - 设置 "Enum"值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12990211/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com