C#怎样定义和使用全局变量?

ZhuHai 2003-08-23 12:56:23
C#怎样定义和使用全局变量?
...全文
820 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
greenhill1 2003-08-24
  • 打赏
  • 举报
回复
form1 中定义:public static int i;
form2 中调用:form1.i
HanJingJingHan 2003-08-24
  • 打赏
  • 举报
回复
OK
CBJ2049011 2003-08-24
  • 打赏
  • 举报
回复
已经没有全局函数和变量的概念了

你可以定义一个类,类中的变量和 方法都使用静态定义来解决你的问题

面向对象了!
spiketang 2003-08-23
  • 打赏
  • 举报
回复
然后用static 来说明变量!
如public static int(long) XXX;
spiketang 2003-08-23
  • 打赏
  • 举报
回复
C#本身是没有全局变量的,但是你可以封装一个类!
Stevetan81 2003-08-23
  • 打赏
  • 举报
回复
在 class级 设:
public static int X;
cppTrier 2003-08-23
  • 打赏
  • 举报
回复
C#是没有C++那样的全局变量的,任何东西都必定是包含于某一个类里的,但是用public static的变量,可以基本起到全局变量的作用。
cnhgj 2003-08-23
  • 打赏
  • 举报
回复
C#里没有全局变量,只有共享变量
public static string xx;

zhao_sh 2003-08-23
  • 打赏
  • 举报
回复
写一个类库,在这个类库中写一个类,类中的成员变量用static属性如:
public class GlobelTest
{
public static string aa;
public static int itest=10;
}
这样在其它地方就可用用类名直接引用它了
JCC0128 2003-08-23
  • 打赏
  • 举报
回复
同意雪狼
下面是我刚写的一个窗体单元代码,连接数据库的

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

using System.Data.SqlClient ;

namespace AdoDemo2
{

/// <summary>
/// Form1 的摘要说明。
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.Container components = null;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.DataGrid dataGrid1;
private System.Windows.Forms.DataGrid dataGrid2;
private System.Windows.Forms.Button button2;
private SqlConnection Conn ;
private DataSet ds ;

public Form1()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();

//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}

/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}

#region Windows 窗体设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.dataGrid1 = new System.Windows.Forms.DataGrid();
this.dataGrid2 = new System.Windows.Forms.DataGrid();
this.button2 = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.dataGrid2)).BeginInit();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(24, 8);
this.button1.Name = "button1";
this.button1.TabIndex = 0;
this.button1.Text = "ShowTable";
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// dataGrid1
//
this.dataGrid1.DataMember = "";
this.dataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText;
this.dataGrid1.Location = new System.Drawing.Point(24, 48);
this.dataGrid1.Name = "dataGrid1";
this.dataGrid1.Size = new System.Drawing.Size(224, 224);
this.dataGrid1.TabIndex = 1;
//
// dataGrid2
//
this.dataGrid2.DataMember = "";
this.dataGrid2.HeaderForeColor = System.Drawing.SystemColors.ControlText;
this.dataGrid2.Location = new System.Drawing.Point(264, 48);
this.dataGrid2.Name = "dataGrid2";
this.dataGrid2.Size = new System.Drawing.Size(296, 224);
this.dataGrid2.TabIndex = 2;
//
// button2
//
this.button2.Location = new System.Drawing.Point(144, 8);
this.button2.Name = "button2";
this.button2.TabIndex = 3;
this.button2.Text = "commit";
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(592, 349);
this.Controls.Add(this.button2);
this.Controls.Add(this.dataGrid2);
this.Controls.Add(this.dataGrid1);
this.Controls.Add(this.button1);
this.Name = "Form1";
this.Text = "Form1";
this.Load += new System.EventHandler(this.Form1_Load);
((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dataGrid2)).EndInit();
this.ResumeLayout(false);

}
#endregion

/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}

private void Form1_Load(object sender, System.EventArgs e)
{
Conn = DBServer.ConnectDB("JCC", "NorthWind","sa", "" ) ;

}

private void button1_Click(object sender, System.EventArgs e)
{

ds= new DataSet() ;

//建表aClass,字段

DataTable aClass = new DataTable("aClass") ;

DataColumn dc = aClass.Columns.Add("ClassID", typeof(string));
dc.Caption ="aaaID" ;
//aClass.Columns["ClassID"]. = "班级ID" ;
aClass.Columns.Add("ClassName", typeof(string));
aClass.Columns["ClassName"].Caption = "班级ID" ;

ds.Tables.Add( aClass) ;

//建表aStudent,字段
DataTable aStudent = new DataTable("aStudent" ) ;
aStudent.Columns.Add("StudentID", typeof(string));
aStudent.Columns["StudentID"].Caption = "学生ID" ;
aStudent.Columns.Add("StudentName", typeof(string));
aStudent.Columns["StudentName"].Caption = "学生姓名" ;
aStudent.Columns.Add("ClassID", typeof(string));
aStudent.Columns["ClassID"].Caption = "班级ID" ;


ds.Tables.Add( aStudent) ;

//建外键
ForeignKeyConstraint fk = new ForeignKeyConstraint(fk,
aClass.Columns["ClassID"], aStudent.Columns["ClassID"]) ;
fk.UpdateRule = Rule.Cascade ;
aClass.Constraints.Add(fk) ;


//填充表aClass
string CmdText = "SELECT ClassID, ClassName FROM aClass " ;
DBServer.FillDataSet(Conn, CmdText, aClass);
//dataGrid1.DataSource = aClass ;

//填充表aStudent
CmdText = " SELECT StudentID, StudentName , ClassID FROM aStudent";
DBServer.FillDataSet(Conn, CmdText, aStudent);
//dataGrid2.DataSource = aStudent ;

dataGrid1.SetDataBinding( aClass,"") ;
//this.BindingContext
}

private void button2_Click(object sender, System.EventArgs e)
{


}
}

public class DBServer
{
public static SqlConnection ConnectDB( string pstr_ServerName , string pstr_DBName ,
string pstr_UserName ,string pstr_Password)
{
string source ="server=" + pstr_ServerName +";"+
"uid = "+ pstr_UserName +";" +"pwd= "+pstr_Password+";"+
"database ="+pstr_DBName ;
return (new SqlConnection(source)) ;
}

public static void ExecSQLNonQuery( SqlConnection psc_Conn , string pstr_CmdText )
{
SqlCommand aSqlCommand = new SqlCommand( pstr_CmdText, psc_Conn );
aSqlCommand.ExecuteNonQuery() ;

}

public static object ExecSQLScalarQuery( SqlConnection psc_Conn , string pstr_CmdText )
{
SqlCommand aSqlCommand = new SqlCommand( pstr_CmdText, psc_Conn );
return (aSqlCommand.ExecuteScalar()) ;

}
public static void FillDataSet( SqlConnection psc_Conn, string pstr_CmdText , DataTable pdt_DataTable )
{
SqlDataAdapter Da = new SqlDataAdapter(pstr_CmdText, psc_Conn ) ;
Da.Fill(pdt_DataTable ) ;
}
}
}
qqq123 2003-08-23
  • 打赏
  • 举报
回复
public class GlobalValues
{
public static int Value1=0;
public static readonly int Value2=0;
public const int Value3=0;
//......
}
//使用方法
GlobalValues.Value1=1;
int k=GlobalValues.Value2;
int j=GlobalValues.Value3;
雪狼1234567 2003-08-23
  • 打赏
  • 举报
回复
定义成public static,
如public static string m;
m就是全局变量,在其它的模块里也可访问,不用new 一个这个类的实例
pretender1982 2003-08-23
  • 打赏
  • 举报
回复
同一二楼的
Nicholasqpl 2003-08-23
  • 打赏
  • 举报
回复
class AAA
{
JensiaTsang 2003-08-23
  • 打赏
  • 举报
回复
楼上的不错,然后创建对像,用对像来调用。
public class classname
{
...
}

classname AName=new classname();
write:AName.someStr:="xxx"
read: lStr:=AName.someStr
jiezhi 2003-08-23
  • 打赏
  • 举报
回复
public classs ...
{
private string s;
public string someStr
{
get{return s;}
set{s=value;}
}
}
shuilong 2003-08-23
  • 打赏
  • 举报
回复
c#里没有全局变量
怎么定义呢

110,533

社区成员

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

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

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