C#如何在一个cs文件中用到另一个cs文件中的变量的值?
在1.cs中定义了这个变量所在的类,代码如下:
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; }
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里直接调用显然是不行的,你要先理解什么叫局部变量以及这个变量的作用域是哪儿。如果必须要用的话,可以在2.cs里建立一个静态类,把要传递的值存在静态类里,然后在3.cs里引用2.cs的命名空间后直接使用。
[解决办法]
将一个CS中的你想得到的变量 设置为共有变量 然后给他赋值 然后再另一个cs中 实例化出来 然后就可以调用这个共有的变量了
[解决办法]
将cs变成一个类,引用的值写成属性,就行了
[解决办法]
*.cs知识用来存放代码的文件,注意,是文件。
类是另一个概念,一个.cs文件里面可以有多个类,一个类也可以分别放在多个.cs文件中。类名可以和.cs文件名毫无关系。
类之间的访问,是命名空间以及访问修饰符的问题。
要真正把这些东西理解了,就不会有这样的问题了。
[解决办法]
1.cs改为
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; } }