【发布时间】:2011-01-18 13:28:56
【问题描述】:
我正在使用 C#.NET 进行编程。我想创建一个嵌套类,它可以访问创建它的实例的成员,但我似乎无法弄清楚如何。
这就是我想做的:
Car x = new Car()
x.color = "red";
x.Door frontDoor = new x.Door();
MessageBox.Show(frontDoor.GetColor()); // So I want the method GetColor of the class Front Door to be able to access the color field/property of the Car instance that created it.
我该怎么做?我尝试将 Door 类嵌套在 Car 类中,但它无法以这种方式访问 Car 类的成员。我需要让 Car 继承门类吗?
【问题讨论】:
-
顺便说一句,使用嵌套类对权限有重要影响(这意味着只有非常紧密耦合的类才应该嵌套)。特别是,在汽车中嵌套一扇门将使门可以访问汽车类的私人成员。这可能不是你想要的。如果门类只在车内使用(即类是私人的),这会稍微不那么可怕......但只有一点点。但你可能也不希望这样。
-
布莱恩+1。框架设计指南(又名 .NET 圣经)很好地反对使用嵌套类;除了少数少数例外,应避免使用它们。
-
你们会再看一下这个问题吗?我添加了更多细节。
-
我已将此回复为人们实际回答的问题,因为新问题已移至stackoverflow.com/questions/2297605/…
标签: c# class nested abstract inheritance