C# .NET嵌套类
我正在处理的当前类库将有一个基类(Field),其中包含50多个特定的“Field”类型,这些类型将从“Field”继承并嵌套以保持可读性。例如C# .NET嵌套类,c#,.net,boo,nested-class,class-structure,C#,.net,Boo,Nested Class,Class Structure,我正在处理的当前类库将有一个基类(Field),其中包含50多个特定的“Field”类型,这些类型将从“Field”继承并嵌套以保持可读性。例如 abstract class Field { public int Length { get; set; } public class FieldA : Field { public static void DoSomething() { Console.WriteLin
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”
这并不是说应用程序被破坏了,但我觉得这很奇怪。在Boo(这是库中使用的实际语言)中执行相同的操作。听起来您想要的是:
abstract class Field
{
public int Length { get; set; }
}
public class FieldA : Field
{
public static void DoSomething()
{
Console.WriteLine("Did something.");
}
}
否则,您将定义一个包含内部类的基类,继承者也将获得该基类。因此,当您从外部类继承以生成内部类时,您正在启动一个循环。听起来您想要的是:
abstract class Field
{
public int Length { get; set; }
}
public class FieldA : Field
{
public static void DoSomething()
{
Console.WriteLine("Did something.");
}
}
否则,您将定义一个包含内部类的基类,继承者也将获得该基类。因此,当您从外部类继承以生成内部类时,您正在启动一个循环
Field
有一个名为FieldA
FieldA
继承自Field
FieldA
访问FieldA
FieldA.FieldA
时,可以访问后者FieldA
,因为前者FieldA
是Field
的一个实例,因此后者FieldA
实际访问FieldA.FieldA
Field
有一个名为FieldA
FieldA
继承自Field
FieldA
访问FieldA
当您访问
FieldA.FieldA
时,后者FieldA
是可访问的,因为前者FieldA
是Field
的一个实例,因此后者FieldA
实际访问字段。FieldA
FieldA继承对类FieldA的引用,后者继承对类FieldA的引用,后者继承对类FieldA的引用继承对类FieldA的引用继承对类FieldA的引用继承对类FieldA的引用继承对类FieldA的引用继承对类FieldA的引用
它之所以有效,是因为你让它这么做。FieldA继承了对class FieldA的引用,后者继承了对class FieldA的引用,后者继承了对class FieldA的引用,后者继承了对class FieldA的引用,后者继承了对class FieldA的引用,后者继承了对class FieldA的引用FieldA类,其中
它之所以有效,是因为你让它这么做。Lol,这真的很酷。必须亲自测试才能相信:pYour的方法是合理的,特别是如果您想控制谁可以派生:使基构造函数私有,并且只有嵌套类型可以从中派生。当我试图用更丰富的OO语义模拟“enum”行为时,我使用了类似的方法。这让我想起了“moon指导学生”这一明显的逻辑疏忽。谢谢你的回复。内部构造函数也会限制谁可以从中继承…哈哈,这真的很酷。必须亲自测试才能相信:pYour的方法是合理的,特别是如果您想控制谁可以派生:使基构造函数私有,并且只有嵌套类型可以从中派生。当我试图用更丰富的OO语义模拟“enum”行为时,我使用了类似的方法。这让我想起了“moon指导学生”这一明显的逻辑疏忽。谢谢你的回复。一个内部构造函数也会限制谁可以从中继承…这就是我担心发生的事情。我想我必须找到另一种方法来安排我的课程。谢谢你的回复。我担心这就是正在发生的事情。我想我必须找到另一种方法来安排我的课程。谢谢你的回复。