gpt4 book ai didi

c# - 在 c#.net 中动态创建一个类

转载 作者:太空宇宙 更新时间:2023-11-03 20:32:31 29 4
gpt4 key购买 nike

我想在 c#.net 中动态创建一个类。

我尝试使用匿名方法,因为成员变量的数量是动态给出的,我试过这样,

string element = "element";
string str = String.Empty;
for (int i = 0; i < elementsCount; i++)
{
str = String.Concat(str, element + i, "=String.Empty", ",");
if (i == elementsCount - 1)
str = String.Concat(str, element + i, "=String.Empty");
}
string s = "new{" + str + "}";
var a=s;

我想像 ObservableCollection 一样分配类“a”,但我做不到。

这两个有办法吗??但我猜这不是正确的方法;

最佳答案

动态创建类并不是一个非常有用的想法,因为您的其他代码都无法在编译时与它对话。这里的目标是什么?选项:

  • 使用Dictionary<string,object>返回按名称键入的数据
  • 在 4.0 中,使用 ExpandoObject , 它有字典和 dynamic API
  • 如果这是为了数据绑定(bind),实现ICustomTypeDescriptor并在运行时提供属性

例如:

    string element = "element";
string str = String.Empty;
int elementsCount = 20;
IDictionary<string,object> obj = new ExpandoObject();
for (int i = 0; i < elementsCount; i++)
{
obj[element + i] = "value " + i;
}
dynamic viaDynamic = obj;
string val0 = viaDynamic.element0; // = "value 0"

但重要的是,这仍然有 IDictionary<string,object>静态使用的 API。

关于c# - 在 c#.net 中动态创建一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6762533/

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