C#嵌套类访问父成员可以访问子类中的父成员...classMainClass{classA{Whatever}classB{ListSubSetList;publicvoidAddNewItem(ANewItem){检查MasterListHere????}}列出MasterList;所以...我的主要课程将有一个主列表。它还将有一堆B的实例。在B的每个实例中,我想将新的A添加到特定的B,但前提是它们存在于主列表中。我玩弄MasterList是静态的并且它起作用了......直到我有多个MainClass实例......我将拥有它。我可以将对MasterList的引用传递给B的每个实例,但我最终会得到多个这样的“MasterList”,如果不需要的话,我不想传递大量的引用。你可以使用这样的东西:classB{privateMainClassinstance;publicB(MainClassinstance){this.instance=instance;}列表子集列表;publicvoidAddNewItem(ANewItem){检查MasterListHere????在C#中,实际上没有对封闭类实例的隐式引用,因此您需要传递这样的引用,而实现此目的的典型方法是通过嵌套类的构造函数。根据您的定义,类B的实例可以访问类MainClass的私有方法和静态字段。无论您是否将B类嵌套在A类中,A的任何给定实例仍然需要知道它拥有的B实例。因此,您可能希望使用对B的引用来初始化A并将其保存在一个字段中。这可能包括取消嵌套。是的,但是您需要引用B实例中的MainClass实例。你有没有想过回到课堂?如果在B中使用AddNewItem方法,则可以在MainClass中使用它。这使得从MainClass中检查MasterList变得容易。这可能对你有用:publicvoidAddNewItem(AnewItem,FunccheckForItemInMasterList){if(checkForItemInMasterList.Invoke(newItem)SubList.Add(newItem);}然后你可以在MainClass中使用这样的方法:publicvoidAddItem(AnewItem){newB().AddNewItem(newItem,x=>MasterList.Contains(x));}总结一下,它可能看起来像这样:全部内容,如果它对你有用并且你需要了解更多关于C#学习教程,希望大家多多关注~newItem);}}//我不知道你是如何向B的实例添加项目的。//这纯粹是推测。publicvoidAddItem(AnewItem){newB().AddNewItem(newItem,x=>MasterList.Contains(x));}ListMasterList;}本文采集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如有转载请注明出处:
