当前位置: 首页 > 编程语言 > C#

VisualC#-访问在另一个类中创建的对象实例分享

时间:2023-04-10 11:39:32 C#

VisualC#-访问在另一个类中创建的对象实例我提前道歉,基于范围可能是一个相当简单/快速的答案,但我已经到处看,很惊讶我没有得到答案。我创建了一个名为Soldier的类,它有大约100个类变量。我需要用户输入信息并在几个不同的类形式的过程中逐渐构建一个Solider对象(因为有太多的数据无法收集一个)。我在Form1.cs中创建了一个Soldier(tempSoldier)的(空)实例,并开始设置我从用户那里收集的对象的类变量。privatevoidbutton1_Click(objectsender,EventArgse){SoldiertempSoldier=newSoldier();tempSoldier.surname=textbox1.text;我的问题:如何获取form1.cs访问对象实例(tempSoldier)?我应该提一下,所有表单(Form1.cs、Form2.cs...)都共享同一个命名空间。提前致谢编辑:以下所有解决方案均有效,因此这取决于您最喜欢哪一个。感谢您的反馈意见。请注意,确保将所有类修饰符设为Public,包括您的自定义类(在我的例子中为Soldier.cs)。您需要在更高的范围内声明Soldier实例。一种方法是在Form1中声明它,然后将其传递给Form2,依此类推。publicclassForm1{privateSoldiertempSoldier=newSoldier();privatevoidbutton1_Click(objectsender,EventArgse){tempSoldier=newSoldier();tempSoldier.surname=textbox1.text;}privatevoidGotoNextStep(){//将现有实例传递给下一个表单Form2form2=newForm2(tempSoldier);//displayform2...}}另一种可能性是在所有表单都可以访问的类中使用单例变量。publicclassMyAppManager{privatestaticreadonlySoldier_soldier=newSolider();publicstaticSoldierSoldierInstance{get{return_soldier;}}}privatevoidbutton1_Click(objectsender,EventArgse){MyAppManager.SoldierInstnace.surname=box}如果表格有明确的顺序,前一种方法很好;如果可以在不同时间使用或重新访问差异表,则后者更好。您应该在您的表单上创建一个公开士兵的公共财产。然后您可以从其他表单访问此属性。//...publicSoldierSoldier{get;私有集;}privatevoidbutton1_Click(objectsender,EventArgse){SoldiertempSoldier=newSoldier();tempSoldier.surname=textbox1.Text;this.Soldier=tempSoldier;}//...你的Form2类看起来像这样:publicpartialclassForm2{privateForm1form1;publicForm2(Form1form1){this.form1=form1;这个.InitializeComponent();}publicvoidDoStuffWithForm1(){//...stringsurname=this.form1.Soldier.surname;//...}}你也可以让士兵成为一个静态变量:soldier.surname=textbox1.text;}其他形式的代码:以上是C#学习教程:VisualC#-获取在另一个类中创建的对象实例会用到,需要详细了解C#学习教程。希望大家多多关注——Form1.soldier.name="";本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:

最新推荐
猜你喜欢