如何定义一个全局的结构体

zywhao 2007-02-28 05:45:08
如何定义一个全局的结构体,例如
public struct aaa
{
public string cn;
public string rs;
}

public aaa g;

然后我想让这个g 在任何窗体或类中都可以直接输入g. 就可以将 cn 或 rs 找出.

或者定义一个函数,就可以在任何窗体或类中直接使用.

在Vb中可以添加一个模块,将上面的代码写在模块中就可以了,但在c#中如何来作呢.

...全文
1618 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zero_3 2007-04-10
  • 打赏
  • 举报
回复
很不错的问题解答!
zywhao 2007-03-02
  • 打赏
  • 举报
回复
谢谢各位的指点,我又学到了很多..

谢谢各位的回复!!!!!

初学C#问到些简单弱智问题,!!见笑了!!!
syeerzy 2007-03-01
  • 打赏
  • 举报
回复
不要说VB中可以...JS中可以....D++或者E#中可以.....

老语言中可以而新语言不可以或不推荐的做法你觉得是历史的倒退还是进步更合逻辑???


不要把VB和ASP的坏习惯带到面向对象的C#里来.
syeerzy 2007-03-01
  • 打赏
  • 举报
回复 1
你这个全局的结构体是干吗用的,一个常量么?????

如果你要写g.cm(真不知道你为什么一定要前面不带东西.....) ,那么就不要用你上面的定义,建个静态类得了.
public static class g
{
public static string cn;
public static string rs;
}

这是惟一让你可以写 g.cn,g.rs 来访问的了.

问题是你已经在错误的路子上了,应该及早走回来. 定义静态或非静态, 结构体或类,关键在于模型和逻辑,而不是根据你对语法写法的喜好来决定.

如果你希望这是个一个全局的结构体,你可以用一个Singleton来实现,也可以简单的在某个类内定义一个静态属性指向该 结构体 , 但是,访问的方式必须是按照语法的规定来访问,而不是"我喜好#####".


如果你这个结构体不是只读的,或者它本身含有修改自己内部字段的方法,那最好现在就把一切思路收回去,重新设计你的方案.

一个全局的,非只读的,结构体,在一个程序中出现,是一种深深的不幸!!!!
step_123 2007-03-01
  • 打赏
  • 举报
回复
可以如下定义:

namespace BizService
{
public class Class1
{
public struct aaa
{
public string cn;
public string rs;
}

}

public class temp
{
public static Class1.aaa tmp;
}
}

然后在page页中调用:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//方式一:
BizService.Class1.aaa a;
a.cn;
//方式二:
BizService.temp.tmp.cn;
}
}
he_8134 2007-02-28
  • 打赏
  • 举报
回复
如果你是做WinForm程序,在解决方案浏览器中打开Program.cs

static class Program
{
public aaa g;////////看到了么???

/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
nine_suns99 2007-02-28
  • 打赏
  • 举报
回复
我认为最好放弃这些非OO的思想
用类的静态属性嘛!
zywhao 2007-02-28
  • 打赏
  • 举报
回复
假如我将这个g声明在了 form1 中了,那在form2中使用时,那还要写上form1.g.cn才可以,而不能直接写g.cn
zywhao 2007-02-28
  • 打赏
  • 举报
回复
写在什么位置呢.. 因为我想在任何窗体或类中都可以直接使用!!

例如 在结构体g中存放着连接数据库的信息, 即我想只进行一次连接,以后就可以直接在程序中写入g.cn (假如cn 就是connect,已经连接好了)


谢谢回复
北京的雾霾天 2007-02-28
  • 打赏
  • 举报
回复
用Static声明:
public struct aaa
{
public string cn;
public string rs;
}

public static aaa g;

110,533

社区成员

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

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

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