在C#中,许多命名空间(如类的嵌套)对性能有影响吗?

在C#中,许多命名空间(如类的嵌套)对性能有影响吗?,c#,class,object,namespaces,nested,C#,Class,Object,Namespaces,Nested,这是一个有点随意的例子,但它展示了如何使用C#中的嵌套类定义来像名称空间一样工作 内部类也可以从外部类和其他类继承,但类似名称空间的行为是相同的 除了我用“public rectangle rect=new rectangle();”在“shape”中这样做之外,内部类并不是外部类的一部分。这更像是它们都有相似的名称,例如,它们可以不堆叠,并用下划线“shape_rectangle_square d=new shape_rectangle_square();”重写 我想知道是否有任何性能方面的考

这是一个有点随意的例子,但它展示了如何使用C#中的嵌套类定义来像名称空间一样工作

内部类也可以从外部类和其他类继承,但类似名称空间的行为是相同的

除了我用“public rectangle rect=new rectangle();”在“shape”中这样做之外,内部类并不是外部类的一部分。这更像是它们都有相似的名称,例如,它们可以不堆叠,并用下划线“shape_rectangle_square d=new shape_rectangle_square();”重写

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

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";
shape.triangle t=新的shape.triangle();
列表三角形=新列表();
添加(新的shape.triangle());
foreach(三角形中的t形三角形)
func(新形状三角形(1,2,3),“ted”);
vs

shape_triangle t=新的shape_triangle();
列表三角形=新列表();
添加(新形状_三角形());
foreach(三角形中的t形三角形)
func(新形状_三角形(1,2,3),“ted”);
我想知道是否有任何性能方面的考虑

不。编译时的几纳秒可能很重要

类允许嵌套类型。这有时用于(私有)“helper”类和强相关的
enum
s。但这关乎结构和组织,而不是绩效


通常,最好避免使用公共嵌套类。公共枚举更为常见

只是一个观察,像这样的嵌套类几乎总是让事情更难找到。它肯定会影响程序员的性能。我相当肯定不会有性能方面的影响,但是,您真的希望每次创建正方形时都必须编写
shape.rectangle.square
?框架设计指南禁止这样做:“不要将公共嵌套类型用作逻辑分组构造;为此使用名称空间。”()@alan2here:Framework/BCL名称空间和类型是完全不同的……感谢您提供的一些信息。
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");