首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#怎么在一个cs文件中用到另一个cs文件中的变量的值

2012-04-25 
C#如何在一个cs文件中用到另一个cs文件中的变量的值?在1.cs中定义了这个变量所在的类,代码如下:C# code pu

C#如何在一个cs文件中用到另一个cs文件中的变量的值?
在1.cs中定义了这个变量所在的类,代码如下:

C# code
 public class FlowSize    {        public long up;        public long down;        public long flow;        public long daysum;        public long monthsum;        public FlowSize()        {            this.down = 0;            this.up = 0;        }        public void clear()        {            this.down = 0;            this.up = 0;        }        public bool Isempty()        {            if ((this.down == 0) && (this.up == 0)) return true;            else return false;        }        public static bool WriteDebugLog = true;        public static int TimeWaitCloseMainWindow = 30;        public static int TimeWaitClose = 30;        public static int TimeWaitKillProcess = 30;    }

在2.cs中实例化了这个类,实例名为grab和grab_flow,代码如下:
C# code
 public static void Refresh_TempData(FlowSize grab_flow)        {            DateTime time = DateTime.Now;            string dbpath = Application.StartupPath + @"\FlowDB.mdb";            OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" + dbpath);            long flow = 0;            FlowSize grab, real;            grab = new FlowSize();            real = new FlowSize();            try            {                con.Open();                OleDbCommand cmd = con.CreateCommand();                cmd.CommandText = "select * from FlowPerMonth where cstr(YearMonth) = '" + GetStandardYM(time)+ "'";                                OleDbDataReader reader = cmd.ExecuteReader();                if (reader.Read())                {                    flow = Convert.ToInt64(reader["User_GB"].ToString()) * num + Convert.ToInt64(reader["User_B"].ToString());                                    }                reader.Close();                cmd.CommandText = "select * from FlowPerday where cstr(FlowData) ='" + GetStandardYMD(time) + "'";                reader = cmd.ExecuteReader();                while (reader.Read())                {                    grab.up += Convert.ToInt64(reader["Grab_up_GB"].ToString()) * num + Convert.ToInt64(reader["Grab_up_B"].ToString());                                      grab.down += Convert.ToInt64(reader["Grab_down_GB"].ToString()) * num + Convert.ToInt64(reader["Grab_down_B"].ToString());                                    }                reader.Close();                con.Close();                UpdateWindow.UpdateFlowMonth(flow+grab_flow.up+grab_flow.down);                               UpdateWindow.UpdateFlowPerDay(grab.up+grab_flow.up, grab.down+grab_flow.down);            }            catch (Exception ee)            {                Flowfairy.FairyLog.WriteLog(ee.ToString());            }        }

想在3.cs中带参访问某个php文件,参数是2.cs中grab.up+grab_flow.up+grab.down+grab_flow.down的结果,该怎样处理?

[解决办法]
Import 2.cs所在的目录
调用处:
参数=c2.grab.up+c2.grab_flow.up+c2.grab.down+c2.grab_flow.down
[解决办法]
你还没搞清许多基本概念啊?
Refresh_TempData(FlowSize grab_flow)
这个grab_flow明明是个参数来的

FlowSize grab, real;
这个grab只是个局部变量

我上面那样调用是不对的了。
[解决办法]
本人才疏学浅,过来学习一下!
[解决办法]
头晕目眩,不知道要搞什么
[解决办法]
可以去看看

委托+事件


[解决办法]
看看能不能发炎
[解决办法]
在3.cs里直接调用显然是不行的,你要先理解什么叫局部变量以及这个变量的作用域是哪儿。如果必须要用的话,可以在2.cs里建立一个静态类,把要传递的值存在静态类里,然后在3.cs里引用2.cs的命名空间后直接使用。
[解决办法]
将一个CS中的你想得到的变量 设置为共有变量 然后给他赋值 然后再另一个cs中 实例化出来 然后就可以调用这个共有的变量了
[解决办法]
将cs变成一个类,引用的值写成属性,就行了
[解决办法]
*.cs知识用来存放代码的文件,注意,是文件。
类是另一个概念,一个.cs文件里面可以有多个类,一个类也可以分别放在多个.cs文件中。类名可以和.cs文件名毫无关系。

类之间的访问,是命名空间以及访问修饰符的问题。

要真正把这些东西理解了,就不会有这样的问题了。
[解决办法]
1.cs改为

C# code
 public class FlowSize    {        public long up;//数据库中的数据均为整数,故用long        public long down;        public static long flows;        public static long getflows()        {            return flows;        }        public long daysum;        public long monthsum;        public FlowSize()        {            this.down = 0;            this.up = 0;;        }        public void clear()        {            this.down = 0;            this.up = 0;        }        public bool Isempty()        {            if ((this.down == 0) && (this.up == 0)) return true;            else return false;        }    } 

热点排行