用一个全局的类吧.定义一个公共类,然后成员是你想公用的变量。public class Globe { public static int V_1;//公共变量 }
如果是要传递参数的话就用session或者application
//定义全局变量,用于保存各种常用数据 public class AAA { public static string sqlstr = "SERVER=(local);DATABASE=cg_hy;UID=sa;PWD=;connection Timeout=1"; public static string ts = "XX软件"; public static string text = "欢迎使用XX软件"; public static SqlConnection conis ; //公用连接 }引用方法 AAA.text 如 messagebox.show(AAA.text);
用一个全局的类吧.public class Globe { public static int n ;//公共变量 }
请看10 11 12楼,迷糊,三个人都写ststic……
类与类之间无法进行参数的直接传递,所以不能使用static,但是可以自己写一个方法得到其返回值。 具体操作如下: class A { private string yourname="yangsongx"; public string returnyourname() { return yourname; } }class B { A f = new A();//new一个类 String s = f.returnyourname();//得到类A里面的String类型参数yourname的值 }这样就很轻松的实现了类与类之间参数的传递。
定义一个数据槽。/// <summary> /// 全局容器 /// </summary> public class GlobalContext { private Hashtable context; public GlobalContext() { context = new Hashtable(); } /// <summary> /// 查找指定的全局变量实例是否在容器类 /// </summary> /// <param name="globalInstance"></param> /// <returns></returns> public bool Contains(object globalInstance) { return context.Contains(globalInstance); } /// <summary> /// 查找指定的全局变量关键字是否在容器类存在实例 /// </summary> /// <param name="globalName"></param> /// <returns></returns> public bool Contains(string globalName) { return context.ContainsKey(globalName); } /// <summary> /// 提供全局变量关键字和实例,加载到容器中 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="globalName"></param> /// <param name="globalInstance"></param> public void Add<T>(string globalName,T globalInstance) { if (globalInstance != null) { if (!context.ContainsKey(globalName)) { context.Add(globalName, globalInstance); } else { throw new ArgumentException(""); } } else { throw new ArgumentException(""); } //return userChild; } /// <summary> /// 指定全局变量关键字获得全局变量实例 /// </summary> /// <param name="globalName"></param> /// <returns></returns> public object this[string globalName] { get { object fglFound = null; if (context.ContainsKey(globalName)) { fglFound = context[globalName]; } return fglFound; } } /// <summary> /// 指定全局变量关键字在容器中删除 /// </summary> /// <param name="globalName"></param> public void RemoveAt(string globalName) { if (Contains(globalName)) { context.Remove(globalName); } }
}
一般我也是用Static变量来做的!PS:网速慢,回复页面刷不出来……
大家好,这里是新疆的.net QQ群体,欢迎大家加入(50794700)
写个类.类里用public static 变量名
关键字static在c#语法一个功能就是定义全局变量,如: public static 类型 变量名 ; 然后就可以在整个项目中使用了,我前几天还用多.呵呵 另外加一句,这个关键字和c中使用不一样,注意区别.
internal class AppCfg
{
public AppCfg()
{
//
// TODO: 在此处添加构造函数逻辑
//
} internal static bool DebugStatus=false;
internal static bool COMCanUse=true;
}
然后在程序中直接使用AppCfg.DebugStatus就可以了。
ststic 调用的时候 就写变量名字就行
要想实现全局功能,另建一个类,在其中定义个public static类型的变量,就到处都可以用了
用一个全局的类吧.定义一个公共类,然后成员是你想公用的变量。public class Globe
{
public static int V_1;//公共变量
}
public class AAA
{
public static string sqlstr = "SERVER=(local);DATABASE=cg_hy;UID=sa;PWD=;connection Timeout=1";
public static string ts = "XX软件";
public static string text = "欢迎使用XX软件";
public static SqlConnection conis ; //公用连接
}引用方法 AAA.text
如
messagebox.show(AAA.text);
static用于定义公共静态方法,而不是定义全局变量……
n多人在建议定义静态变量,虽然能实现楼主的要求,不过我还是感觉满头大汗。
{
public static int n ;//公共变量
}
具体操作如下:
class A
{
private string yourname="yangsongx";
public string returnyourname()
{
return yourname;
}
}class B
{
A f = new A();//new一个类
String s = f.returnyourname();//得到类A里面的String类型参数yourname的值
}这样就很轻松的实现了类与类之间参数的传递。
/// 全局容器
/// </summary>
public class GlobalContext
{
private Hashtable context; public GlobalContext()
{
context = new Hashtable();
}
/// <summary>
/// 查找指定的全局变量实例是否在容器类
/// </summary>
/// <param name="globalInstance"></param>
/// <returns></returns>
public bool Contains(object globalInstance)
{
return context.Contains(globalInstance);
}
/// <summary>
/// 查找指定的全局变量关键字是否在容器类存在实例
/// </summary>
/// <param name="globalName"></param>
/// <returns></returns>
public bool Contains(string globalName)
{
return context.ContainsKey(globalName);
} /// <summary>
/// 提供全局变量关键字和实例,加载到容器中
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="globalName"></param>
/// <param name="globalInstance"></param>
public void Add<T>(string globalName,T globalInstance)
{ if (globalInstance != null)
{
if (!context.ContainsKey(globalName))
{ context.Add(globalName, globalInstance);
}
else
{
throw new ArgumentException("");
}
}
else
{
throw new ArgumentException("");
} //return userChild;
}
/// <summary>
/// 指定全局变量关键字获得全局变量实例
/// </summary>
/// <param name="globalName"></param>
/// <returns></returns>
public object this[string globalName]
{
get
{
object fglFound = null;
if (context.ContainsKey(globalName))
{
fglFound = context[globalName];
}
return fglFound;
}
}
/// <summary>
/// 指定全局变量关键字在容器中删除
/// </summary>
/// <param name="globalName"></param>
public void RemoveAt(string globalName)
{
if (Contains(globalName))
{
context.Remove(globalName);
}
}
}
然后就可以在整个项目中使用了,我前几天还用多.呵呵
另外加一句,这个关键字和c中使用不一样,注意区别.
那么,lz,也可以考虑这种方式,当然不是叫你用IOC框架。你可以设计一组个类,根据实例化的对象不同存放不同的包含的对象。
这样可以解决你说的全局变量的问题。同时,稍加修改,你也可以将这组类,转变成自己的Cache。说的不好,见谅!