gpt4 book ai didi

c# - 如何查看同一个类的类内是否存在?

转载 作者:太空狗 更新时间:2023-10-30 00:50:06 25 4
gpt4 key购买 nike

我为我的英语感到抱歉。我有这样的类(class):

public class MainClass
{
public string message { get; set; }
public MainClass forward { get; set; }
}

并且有 Main 函数,我在其中初始化类并填充数据(在实际项目中我有 JSON 格式的数据,其中类可以无限次地嵌入自身)类:

static void Main(string[] args)
{
MainClass clasClass = new MainClass()
{
message = "Test1",
forward = new MainClass()
{
message = "Test1_1",
forward = new MainClass()
{
message = "Test1_1_1",
forward = new MainClass()
{
message = "Test1_1_1_1",
forward = new MainClass()
}
}
}
};
}

如何在不知道嵌套类名数量的情况下获取它们的数量?

最佳答案

听起来你只是想要递归:

public int GetNestingLevel(MainClass mc)
{
return mc.forward == null ? 0 : GetNestingLevel(mc.forward) + 1;
}

或者作为 MainClass 本身的一部分:

public int GetNestingLevel()
{
return mc.forward == null ? 0 : mc.forward.GetNestingLevel() + 1;
}

或者在 C# 6 中,如果你想使用 null 条件运算符:

public int GetNestingLevel()
{
return (mc.forward?.GetNestingLevel() + 1) ?? 0;
}

如果您有非常嵌套很深的类,就炸毁堆栈而言,这可能会导致问题 - 但它可能是最简单的方法。根据 M.kazem Akhgary 的回答,替代方法是使用迭代。

关于c# - 如何查看同一个类的类内是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33666980/

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