程序中有几十个需要全局使用的对象。有3个相同的属性,2个相同的方法。但是每个对象也有一些独有的属性和方法。
这些全局对象的属性根据需要会在程序中修改。
最初想法建一个基础类,基础类包含共同属性和方法。其余的对象在基础类中派生。然后把这几十个对象加入一个对象数组,启动程序的时候使用foreach使用共同的方法根据每个对象的属性值对每个对象赋值初始化。
但是这种方法的缺陷是每个对象都必须实例化。如果是在窗口1中实例化,窗口2要就调用不了,要调用也必须把他作为参数传递到窗口2。但这个存在的麻烦就是在窗口2中我需要比较很多个对象的属性,把他们全部作为参数传递也不太现实。
希望的实现:能否存在一种方法,能够派生,在程序初始化时实例化对象,并能像静态类一样的能在全局引用这几十个对象。
class bass
{
string xname;
public string Xname{get xname;set xname=value;};
public void dosome(string Xname)
{
dosomething.......
}
........
}
class myctr1:bass
{
}
class myctr2:bass
{}
.........
List myctr= new List();
myctr1 m1=new myctr1();
m1.Xname="name1";
myctr.Add(m1);
myctr2 m2=new myctr2();
m2.Xname="name2";
myctr.Add(m2);
..........
foreach (bass myc in myctr)
{
myc.dosome(Xname);
}
在窗口2中我想直接使用对象名调用。
m1.方法;
或者说C#有其他的办法实现这个功能。求教,谢谢