gpt4 book ai didi

c# - 如何使用 C# 中的参数获取和设置 vb6 属性?

转载 作者:行者123 更新时间:2023-11-30 16:24:58 27 4
gpt4 key购买 nike

我需要从 vb6 对象获取和设置带有参数的属性:

Property Prop(ByVal type As SomeEnum) As Currency

这就是我创建对象实例的方式:

dynamic obj = Activator.CreateInstance(Type.GetTypeFromProgID(progID));

我在 C# 中尝试了 vb6 语法,但它不起作用(甚至无法编译):

obj.Prop(enumValue) = 1.2m;

所以问题是:如何从 C# 获取和设置带有参数的 vb6 属性?

编辑:

此方法不适用于dynamic。据我所知,它适用于 COM Interop:

obj.get_Prop(enumValue);
obj.set_Prop(enumValue, newValue);

反射方法工作正常,但过于冗长:

obj.GetType().InvokeMember("Prop", System.Reflection.BindingFlags.Public |
System.Reflection.BindingFlags.SetProperty, null, obj,
new object[] { enumValue, 1.2m });

属性索引器方法也适用:

obj.Prop[enumValue] = 1.2m;

最佳答案

在 C# 中,属性索引器的编写方式类似于数组。

obj.Prop[enumValue] = 1.2m;

关于c# - 如何使用 C# 中的参数获取和设置 vb6 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10330539/

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