c# - 在 C# 中,许多 namespace (如类的嵌套)对性能有影响吗?

标签 c# class object namespaces nested

public class shape
{
    public int x, y;

    public class triangle
    {
        int sides = 3;
    }

    public rectangle rect = new rectangle();

    public class rectangle
    {
        int sides = 4;

        public class square
        {
            public string s;
        }
    }
}

shape a = new shape();
a.x = 4;
a.y = 3;
//print(a.triangle.sides) //no such thing
//print(a.rect.sides) //prints 4
shape.rectangle.square d = new shape.rectangle.square();
d.s = "abc";

这是一个有点武断的例子,但它展示了在 C# 中使用嵌套类定义来像命名空间一样工作。

内部类也可以从外部类继承等等,但类似 namespace 的行为是相同的。

除了我在“形状”中使用“public rectangle rect = new rectangle();”内部类并不是外部类的一部分。更像是它们都具有相似的名称,例如它们可以被取消堆叠并用下划线重新措辞“shape_rectangle_square d = new shape_rectangle_square();”。

我想知道是否有任何性能方面的考虑,例如在这些情况下。

shape.triangle t = new shape.triangle();

List<shape.triangle> triangles = new List<shape.triangle>();

triangles.Add(new shape.triangle());

foreach (shape.triangle t in triangles)

func(new shape.triangle(1, 2, 3), "ted");

对比

shape_triangle t = new shape_triangle();

List<shape_triangle> triangles = new List<shape_triangle>();

triangles.Add(new shape_triangle());

foreach (shape_triangle t in triangles)

func(new shape_triangle(1, 2, 3), "ted");

最佳答案

I was wondering if there were any performance considerations to this?

没有。在编译时可能需要几纳秒。

类允许嵌套类型。这有时用于(私有(private))“助手”类和强相关的 enum。但它是关于结构和组织的,而不是关于性能的。

一般来说,最好避免公共(public)嵌套类。公共(public)枚举稍微更常见。

关于c# - 在 C# 中,许多 namespace (如类的嵌套)对性能有影响吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8640136/

相关文章:

javascript - 为什么显示的是 [object HTMLCollection] 而不是我创建的元素?

javascript - 在 JavaScript 对象中创建变量时,代码如何知道在哪里添加新变量?

c# - 在 IIS Express 中处理 URL 绑定(bind)失败

c# - 调试时如何启动带有参数的程序?

c# - 您最喜欢的 C# 扩展方法是什么? (codeplex.com/extensionoverflow)

c++ - 结构中带有类的链表无法使 bool 操作正常工作

python - 在 Python 中, 'return self' 返回对象的副本还是指针?

c# - 搜索按钮上的进度条

html - 悬停某个图像时显示某些信息

javascript - Vanilla JS。从 foreach 方法中的数组中删除对象?