gpt4 book ai didi

c# - 在运行时动态创建具有与其所有者相同类型的字段的类型

转载 作者:行者123 更新时间:2023-11-30 17:08:12 25 4
gpt4 key购买 nike

所以我目前正在编写在运行时生成对象的代码。很像 This Q&A .

但是,我无法找到有关动态创建嵌入了相同类型的类型的任何信息。像这样的东西:

public class Foo
{
private Foo _Parent

public Foo()
{}

public Foo Parent
{
get { return _Parent; }
set { _Parent = value; }
}
}

有没有办法在 C# 中使用反射或发射来做到这一点?

提前致谢。

最佳答案

Today I learned您可以将 TypeBuilder 转换为 Type 以获取要构建的类型的句柄:

TypeBuilder tb = // get from a ModuleBuilder or wherever
Type typeImAboutToBuild = (Type)tb;

FieldBuilder fb = tb.DefineField(
"_Parent", typeImAboutToBuild, FieldAttributes.Private)

编辑:TypeBuilder 实际上继承 Type,而不是显式隐式 转换操作;你甚至不需要类型转换:

TypeBuilder tb = //whatever
FieldBuilder fb = tb.DefineField("_Parent", tb, FieldAttributes.Private)

关于c# - 在运行时动态创建具有与其所有者相同类型的字段的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13966029/

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