关于 C# 的一个低级问题(100分)

  • 主题发起人 主题发起人 ddev
  • 开始时间 开始时间
D

ddev

Unregistered / Unconfirmed
GUEST, unregistred user!
不用说,C# 肯定没有全局变量、全局方法,但一个问题:
Console.WriteLine() 的 Console 是一个什么东西?
如果是 namespace ,那么 WriteLine() 显然是一个
全局方法,不妥;而如果是一个类,那么 ---- 它算什么?
全局的?它在哪儿被初始化了?
我的实际问题:比如,我有两个类,A 及 B, 它们将都需要
访问 C 类,而 C 类则相当于我们普通编程语言如:C++/Delphi 的
全局类实例,也保存着一些全局的数据内容。显然,如果我把 C 类
分别在 A, B 中实例化,那么它们的数据肯定会不一致,是不是可以
用这样的方法来处理:
public class C() {
public static int MyGlobalIntVar;
public static string MyGlobalStrVar;
}
这样就能保证,如:在 A 类中:
C c_inst_in_a = new C();
与 B 中,
C c_inst_in_b = new C();
能够保证具有相同的数据内容,并且能够同步变化?
简单地讲:就是我需要一个全局的类实例,如何实现?
 
你说得很对,可以将你想要的公共类的数据写为static。它构造在类本身之前,且只有一份。还有个问题:你为什么想让一个全局对象实例化在两个其他类中,就是实例化2次?
如过你想全局对象在A,B类中都能使用,可以这样:先在A类中实例化C,而在B类中不要new出C对象只是Declare一个C object_c即可,在B类的某个函数(如构造函数)的参数前加个ref关键字即可,例如:public B(ref C c){object_c=c}
这样你就有了在A中实现的C对象的引用了。
 
建议楼主再看看相关类方面的书,看看类的静态方法,还有如设计模式的Singleton等,相信有所领悟
 
后退
顶部