社区
C#
帖子详情
请问在C#中如何定义一个类似于全局的静态对象?
lihuabo
2006-05-18 09:37:54
可以从一个form中设置数据,从另一个form中取出数据
...全文
990
43
打赏
收藏
请问在C#中如何定义一个类似于全局的静态对象?
可以从一个form中设置数据,从另一个form中取出数据
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
43 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
孤剑
2006-06-06
打赏
举报
回复
public class Global
{
private static string _StaticTest;
public static string globalVariables
{
get{return this._StaticTest;}
set{this._StaticTest=value;}
}
}
访问的时候:
MessageBox.Show(Global.globalVariables);
liycumt
2006-06-06
打赏
举报
回复
public class login: System.Windows.Forms.Form
{ public string username=""
public form1()
{
}
//登陆
username=textBox1.Text.ToString();
Form2 f2=new Form2();
f2.form2Name=username;//username的值传给form2Name,在Form2中可以访问
}
public class Form2: System.Windows.Forms.Form
{ public string form2Name;
public Form2()
{
}
}
「已注销」
2006-06-06
打赏
举报
回复
使用静态类或者使用单件模式
shilei831115
2006-06-06
打赏
举报
回复
一剑飘香?莫哥?
socg
2006-06-06
打赏
举报
回复
我试过了,上面的代码可以访问,可能你顺序搞错了,ParameterSettings.Username = "aaaaaaaa"必须在MessageBox.Show(ParameterSettings.Username)前面!
上面提到 跨窗体取值 可以使用公有属性,如:
Form2 f=new Form2();
f.ShowDialog();
x=f.aaa;
程序可以让尸体动起来
2006-06-05
打赏
举报
回复
怒了。实在不行就把东西写到txt里.然后读.或者写到access数据库里,再读.
lihuabo
2006-06-05
打赏
举报
回复
没有人指导一下吗?
sbsrg3000
2006-06-01
打赏
举报
回复
mark
yiming0755
2006-06-01
打赏
举报
回复
你是想用全局静态变量来做什么我不知道,我只告诉你一句,非必要的情况下,用全局静态变量是非常危险的一件事,设想一下,如果你在A窗体用这个属性做了一次判断,而刚好B窗体把这个变量修改了。。。。。。。。
lihuabo
2006-06-01
打赏
举报
回复
to yiming0755() :那我请教,那你在碰到这种跨窗体取值并且值要常变化,你怎么处理的?
lihuabo
2006-05-31
打赏
举报
回复
http://blog.csdn.net/zhzuo/archive/2006/05/05/708941.aspx以及http://dev.csdn.net/article/84/84490.shtm中的这片文章,提到:
使用静态类该方式可以简单的理解为静态变量全局共享,通过下面代码能够比较清楚的理解,先来定义静态类,
public static class ParameterSettings
{
//公共静态变量
public static string Username = "Zhengzuo";
//私有静态变量
private static string userRole = "Administrators";
//私有静态变量
private static string password = "http://blog.csdn.net/zhzuo";
//内部属性
internal static string UserRole
{
get { return userRole; }
}
//公共属性
public static string Password
{
get { return password; }
private set { password = value; }
}
}
为了验证这段代码,我专门安装了VS 2005. 虽然编绎通过了没有问题,但还是没有满足我的要求。
写个很简单的例子:
public class form1: System.Windows.Forms.Form
{
public form1()
{
ParameterSettings.Username = "aaaaaaaa";
}
}
public class form1: System.Windows.Forms.Form
{
public form1()
{
MessageBox.Show(ParameterSettings.Username);
}
}
在form2中ParameterSettings.Username根本就不是form1中设置的值。我需要在一个form中设置值,在其它的form中访问,怎么办?
lihuabo
2006-05-21
打赏
举报
回复
好,我再看看
hnhl
2006-05-21
打赏
举报
回复
to:请问在C#中如何定义一个类似于全局的静态对象?
利用Singleton(单件)模式可以得到单一实例,并且提供了一个全局访问点,
例如:
public class Singleton
{
private Singleton _singleton;
/// <summary>
/// 私有构造器,这样可以使得客户类不能通过New 构造器实例化类
/// </summary>
private Singleton()
{
}
/// <summary>
/// 共有静态方法,创建单一实例,此方法非线程安全
/// </summary>
/// <returns></returns>
public static Singleton CreateInstance()
{
if (_singleton == null)
{
_singleton = new Singleton();
}
return _singleton;
}
}
public class TestClient
{
public static void Main()
{
Singleton s1 = Singleton.CreateInstance();
Singleton s2 = Singleton.CreateInstance();
if (s1.Equals(s2))
{
Console.WriteLine("s1 equals s2");
}
}
}
jerrygates
2006-05-21
打赏
举报
回复
类的定义中不能用static修饰的,是语法错误,只能有public private protected internal ,
还可以有sealed abstract ,属性的付值,也没有什么private 吧。只能说是password 在定义时用private
socg
2006-05-21
打赏
举报
回复
上面错了,是“不允许有访问修饰符、不允许有参数”
socg
2006-05-21
打赏
举报
回复
public class a
{
static int a1;
public static int A1
{
get { return a1; }
set { a1=value; }
}
static a()
{
a1=3;
}
}
静态构造函数不允许有访问修饰符、不允许有访问修饰符。执行的时间也是不却定的,但能保证你调用其成员时已经执行,且只会执行一次!
不知是不是楼住想要的答案!
socg
2006-05-21
打赏
举报
回复
属性也需要是静态的!
syeerzy
2006-05-21
打赏
举报
回复
晕,上面最上面最上面那种方式是最方便的,不过最好不要那么做,程序一大你都不知道这个值现在是什么了,因为哪里都能设置它...
至于说的语法错更荒唐.....2.0的语法拿来1.1里编译...你说出错不出错?
socg
2006-05-21
打赏
举报
回复
静态对象
构造函数可以为静态变量初始化
静态函数
lihuabo
2006-05-21
打赏
举报
回复
to hnhl(荒凉) :
能不能帮忙再详细一点,在你的这个类里面加上属性,如何去访问设置这些属性?
加载更多回复(23)
C#
中
的
全局
用法
但是可以借签
c#
中
的另外一种技术实现
类似
于
全局
变量的概念,既
静态
类和
静态
方法。定义
静态
类和
静态
变量的关键字是static,该关键字的使用属于
c#
语言面向
对象
编程
中
的高级内容,此处不做详细的介绍,只
C#
作为
全局
的变量怎么实现?
C#
作为
全局
的变量怎么实现?
c#
的
全局
变量解决方法
c#
的
全局
变量解决方法 ... 但是可以借签
c#
中
的另外一种技术实现
类似
于
全局
变量的概念,既
静态
类和
静态
方法。定义
静态
类和
静态
变量的关键字是static,该关键字的使用属于
c#
语言面向
对象
编程
中
的高级内容,此
c#
如何定义
全局
变量list
原文地址:
c#
如何定义
全局
变量list 1、List的基础、常用方法: 声明: 1、List mList = new List(); T为列表
中
元素类型,现在以string类型作为例子 E.g.:List mList = new List(); 2、List testList =new List ...
C#
基础-定义常量的两种方法
C#
基础-定义常量的两种方法
C#
110,536
社区成员
642,578
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章