c# 判断 全局变量?

我用winform做了个小程序,里面有十几个button控件,分别以对应的参数打开同一个exe。问题是这个exe路径不确定,需要事先用File.Exists判断出真正的路径去赋值变量a,button控件才好根据这个变量a去打开那个exe。可我不想每个button控件都写判断,能不能开头就判断好,然后全部button都直接用这个变量a?

以下代码都放到Form1.cs里面去。

用变量记录可能的路径集合和参数

public List<string> 可能的路径 = new List<string>(){ @"C:\1.exe",@"D:\1.exe"};

public string 参数1 = @"111";

public string 参数2 = @"222";

封装成函数

public bool 启动路径(string 参数 = ""){

           string 真实路径 = "";

            foreach (var path in 可能的路径) {

                  if (File.Exists(path)){ 真实路径 = path; break;}

            }

            if (真实路径 != "") {Process.Start(真实路径, 参数); return true;}

       return false;

}

然后在 button1 里面调用:

        private void Button1_Click(object sender, EventArgs e) {

            bool 成功启动的结果 = 启动路径(参数1);

           //如果成功找到地址并启动会返回true。

        }

然后在另外的 button2 里面调用:

        private void Button2_Click(object sender, EventArgs e) {

            bool 成功启动的结果 = 启动路径(参数2);

        }

你可以把给不同的button提供不同的参数来实现自己的自定义逻辑

追问

不太懂。就假设路径可能有c:\1.exe和D:\1.exe,button1参数为111,button2参数为222。能帮我写下吗

追答

怎么确定按钮点击后要选择哪个路径?你说明白才能帮你写。

追问

因为1.exe可能有好几个路径,我就是要先判断出1.exe的真实路径,然后其他按钮好根据这个真实路径去打开1.exe

追答

已经修改了答案

温馨提示:内容为网友见解,仅供参考
第1个回答  2020-03-10
把判断exe路径放在窗体的Load事件中。获取的结果存在form的一个私有变量里。
第2个回答  2020-03-03
感觉没必要用十几个按钮,
帮改私信追问

就一小工具,全摆出来会更方便

追答

20rmb帮你写

C#中有全局变量的概念吗?
C#中没有全局变量的概念,可以定义一个common类,通过静态变量来存放所有需要的全局变量,调用的时候通过common来调用即可。调用的时候使用“命名空间.common.属性名”即可,例如 string m_name = common.Name ;common.farray [0, 2] = 0.5 ;...

C#中在哪里声明全局变量啊,具体位置在哪儿,我是初学者。。。
C#中,没有“全局变量”的概念。但可以通过类的静态字段或属性来模拟C或C++中的全局变量。1)"全局变量"的定义方法:\/\/ 在MyVars类中定义两个“全局变量”public class MyVars{ \/\/ Count是静态字段 public static int Count; \/\/ MaxSize是静态属性 public static int MaxSize {get; ...

C#如何在窗口设定一个if来检测一个全局变量是否发生改变
如果非要在form2中通过检测的方式来做,可以在form2中增加一个计时器,在计时器触发事件中使用if判断,当然计时器存在事件间隔问题,不实时。

c#如何定义全局变量?
1、首先,我们右击资源管理窗口。2、如图,在这里点击右键,选择”添加“选项,然后点击“添加模块”3、然后出现选择模块,点击“打开”。4、然后我们写上Public关键字,即可定义全局变量。5、然后我们在窗体中直接调用。6、然后便可以直接运行调试,例如publicaasinteger。

C语言中,这个main函数里定义的变量是全局变量还是局部变量?_百度...
放在main函数里定义的变量是局部变量,全局变量要放在所有函数(包括main)的外部#include int x,y,z;void year(int a,int b,int c);int main(){ int i,a,b,c;for(i=1;i<=1;i++){ scanf("%d,%d,%d",&a,&b,&c);printf("a=%d\\n",a);printf("b=%d\\n",b);printf("c=%d...

关于在c# winform 中定义全局变量的问题
C#中是没有所谓的全局变量的.要构造出类的属性作为全局变量 可以在GlobalParams 写:public static string user = ""; \/\/定义变量 public GlobalParams (){ user ="abcd";\/\/赋值构造 } public string User { get { return user ;} set { user =value;} 这样就可以其他窗体访问此User Message...

C#中可以存在全局变量和全局函数吗?
\/\/使用“全局变量”GlobalFunAndVars.Number = 100;int x = GloabalFunAndVars.Number;GlobalFunAndVars.Value = 3.14;float v = GlobalFunAndVars.Value;\/\/使用“全局函数”float y = GlobalFunAndVars.GetValue();GlobalFunAndVars.SetNumber(200);说明:严格地说在C#中没有全局函数和全局变量...

C# 全局变量的使用方法?
1.c#中不能直接声明 全局变量 首先 打开代码 1.新建一个类 例如:public class 全局变量 { } 2.在类下 添加静态方法 声明变量 例如 public static bool a=false;public static bool b=false;3.这样我们就声明好了 4.找到需要用的地方 打上 全局变量.a 根据自己的数据操作就行 参考代码:pub...

在C#里面global是做什么用的?
用它声明的变量是全局变量。在程序任何位置都能直接访问它。

怎样在C#窗口程序中使用全局变量?对程序中所有窗口均有效的那种全局变量...
把变量声明成public static的全局静态变量就可以

相似回答