[c#] .NET嵌套类



Answers

  1. Field有一个名为FieldA公共嵌套类
  2. FieldA继承Field
  3. 因此您可以随时从FieldA访问FieldA

这个参照不是创造无限的链条,而是指向同一个班级。 ( 一些测试代码

当你访问FieldA.FieldA ,后一个FieldA是可访问的,因为前一个FieldAField一个实例,所以后者FieldA实际上访问Field.FieldA

Question

我正在处理的当前类库有一个基类(Field),它具有超过50个特定的“字段”类型,它们将从“字段”继承并嵌套以保持可读性。 例如...

abstract class Field
{
    public int Length { get; set; }

    public class FieldA : Field
    {
        public static void DoSomething()
        {
            Console.WriteLine("Did something.");
        }
    }
}

到目前为止,一切看起来不错,我可以使用如下所示的代码:

class Program
{
    static void Main(string[] args)
    {
        Field.FieldA.DoSomething();
    }
}

但是,为什么这个工作呢? 这里是什么让编译器/ IDE的intellisense继续链接这些“FieldA”?

class Program
{
    static void Main(string[] args)
    {
        Field.FieldA.FieldA.FieldA.FieldA.FieldA.FieldA.FieldA.DoSomething();
    }
}

这不是以任何方式破坏应用程序,而是认为它是奇特的。 在Boo中是否有相同的事情(这是图书馆使用的实际语言)。




Links