【发布时间】:2013-12-11 00:34:38
【问题描述】:
我有一个问题,如何在一个好的(更好的)模型中设计以下案例(我正在使用 C#): 到目前为止是这样的:
public class ExampleClass
{
private object ExampleClassPrivate;
public SubExampleClass SubExampleClassPublic;
-------
public void ChangeExampleClassPrivate()
{
ExampleClassPrivate = "SOMETHING";
}
private class SubExampleClass
{
private object SubExampleClassPrivate;
public SubSubExampleClass SubSubExampleClassPublic;
.
.
.
}
public class SubSubExampleClass
{
...
public void DoSomething()
{
//Do something within SubSubExampleClass
//In the end: call ChangeExampleClassPrivate()
}
}
}
我可以做到以下几点: 我创建了一个 ExampleClass 的实例,我们称之为“TestInstance”。 那么:
TestInstance.SubExampleClassPublic.SubSubExampleClassPublic.DoSomething();
TestInstance.ChangeExampleClassPrivate();
但我不想在 DoSomething() 之后一直手动执行 ChangeExampleClassPrivate()。我寻找一种从 DoSomething() 内部调用 ChangeExampleClassPrivate() 的可能性。
我怎样才能做到这一点?我想我的班级结构并不完美,但我不知道如何改变它以使其正常工作。
【问题讨论】:
-
不清楚外部类和嵌套类之间的关系是什么 - 您的示例根本没有关系,因此显然不可能调用外部类的实例方法(与任何其他 2 个不相关的类相同) .也许您期望实例之间存在某种父/子关系?也许是继承?
-
你应该考虑在这个例子中用真实姓名编写你的类。老实说,很难确切地确定您的问题是关于什么的。我认为您试图询问如何让内部类调用其父类的成员,在这种情况下@Tony 已经回答了您的问题(注入父类,或者至少是指向所需函数的指针)。
-
您能否举一个小例子说明“注入指向所需函数的指针”的含义?
标签: c# oop inner-classes