如何定义和使用全局变量

alex260 2005-09-23 08:35:21
我有四个窗体,想要定义一个全局变量在这四个窗体中使用,要怎么办?
小弟是新手,麻烦各位大大附上原码。
...全文
291 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
adventure007 2005-09-23
  • 打赏
  • 举报
回复
使用类来存放静态变量时最好的也最好维护的
chinahuman 2005-09-23
  • 打赏
  • 举报
回复
声明静态变量和静态方法这个可以解决你的程序中运行的时候不会变的一些值进行全局共享.
如果你想要一个全局的对象进行共享的话,可以用单件模式:
class GoableClass()
{
private static GoableClass _singleton = null;
private GoableClass()
{
....
}
public static GoableClass Singleton()
{
get
{
if (_singleton == null)
_singleton = new GoableClass();

return _singleton;
}

}


}
skywind_jk 2005-09-23
  • 打赏
  • 举报
回复
namespace space1
public class MyDatas
{
public static string CurrentUser;
}

引用时,直接这样引用:space1.MyDatas.CurrentUser就可以了。
dd_zhouqian 2005-09-23
  • 打赏
  • 举报
回复
肯定有拉,但我觉得这种方法是比较好的一种
weiworm 2005-09-23
  • 打赏
  • 举报
回复
问题是除了使用静态类或者静态变量
还能有其它方法做全局变量吗??
CoolKin9 2005-09-23
  • 打赏
  • 举报
回复
声明一个类,无须实例化可以使用其中的静态变量和静态方法
下面是例子,你要好好封装,哈哈。
public class MyDatas
{
public static string CurrentUser;
public static DateTime CurrentDate;
public static string Cnn;
}
Kshatriya 2005-09-23
  • 打赏
  • 举报
回复
静态变量很好用的啊,原来一个比较大型的项目里面专门有一个存放变量的类,用来存放共用的静态变量。
homesos 2005-09-23
  • 打赏
  • 举报
回复
使用静态变量?这样做是否安全?
以前在C++中我都很少用静态变量,感觉它总是得不到你想要的值。
-------------------------------------------------------------
是自己没有控制好吧,编程态度很重要滴!
ekin7913046 2005-09-23
  • 打赏
  • 举报
回复
其实你可以这样实现,在你的项目中加入一个类,取名为"ApplicationData.cs",然后你可以记录你需要的东西。例如记录一个学生编号:public static string StudentID = "0009";
alex260 2005-09-23
  • 打赏
  • 举报
回复
使用静态变量?这样做是否安全?
以前在C++中我都很少用静态变量,感觉它总是得不到你想要的值。
yangxd_yi 2005-09-23
  • 打赏
  • 举报
回复
楼上的基本解释的不错,再补充一下: static 关键字定义的变量是归属与类的,而不是归属与其事例话的对象的,这样在多线程操作中可能会出现一定问题,有可能你引用的那个变量并不是你想预期的值,理解好变量的作用域 你会用的更爽...
wuyi8808 2005-09-23
  • 打赏
  • 举报
回复
专门定义一个类来存放全局的静态变量:

sealed class Pub
{
public static int Id;
public static string Name;
// ...
}

class A
{
Pub.Id = 5;
Pub.Name = "Skyiv";
}

class B
{
Console.WriteLine(Pub.Id + " " + Pub.Name);
}
ZhouQiang 2005-09-23
  • 打赏
  • 举报
回复
//FormMain.cs
public static string XXX = "xxx" ;

//Form1.cs
string AAA = FormMain.XXX ; //取值
FormMain.XXX = "aaa" ; //赋值

//Form2.cs
string BBB = FormMain.XXX ; //取值
FormMain.XXX = "bbb" ; //赋值

。。。
lh8287 2005-09-23
  • 打赏
  • 举报
回复
最好不要用全局变量,当全局变量定义的多得时候,很麻烦,尤其是多人开发。
而且当代码给第三个人看的时候,别人要通读程序,才能弄清这个全局变量是在什么时候赋的值,又是哪个函数在什么时候修改了这个值。

推荐使用参数传递。

当然,有些参数不用全局变量实现起来比较麻烦。
这是个辩证的观点。呵呵

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧