C# 为什么返回时bool out变量会被清除?
在助手类中,我有一个例程,如下所示C# 为什么返回时bool out变量会被清除?,c#,C#,在助手类中,我有一个例程,如下所示 if (HelperClass.CheckFileExists(filename, out bool fileexists) 我的调用文件中有一个全局变量 private bool fileexists= false; 但是当上面的调用返回fileexists时,它被设置为true,然后在我退出调用例程之后,它被设置为false; 为什么会发生这种情况?out bool fileexists声明了一个名为fileexists的新变量,只要新变量在范围内,
if (HelperClass.CheckFileExists(filename, out bool fileexists)
我的调用文件中有一个全局变量
private bool fileexists= false;
但是当上面的调用返回fileexists时,它被设置为true,然后在我退出调用例程之后,它被设置为false;
为什么会发生这种情况?
out bool fileexists
声明了一个名为fileexists
的新变量,只要新变量在范围内,它就会“隐藏”全局变量
如果要引用现有变量或字段,请改用out fileexists
(不带数据类型):
作为旁注,在这种情况下,您似乎不需要out参数:如果您的helper方法按照其名称执行,则以下代码:
fileexists = HelperClass.CheckFileExists(filename);
if (fileexists) ...
可能更具可读性,避免将相同的值作为返回值和输出参数返回。
out bool fileexists
声明一个名为fileexists
的新变量,只要新变量在范围内,它就会“隐藏”全局变量
如果要引用现有变量或字段,请改用out fileexists
(不带数据类型):
作为旁注,在这种情况下,您似乎不需要out参数:如果您的helper方法按照其名称执行,则以下代码:
fileexists = HelperClass.CheckFileExists(filename);
if (fileexists) ...
可能更具可读性,避免将相同的值作为返回值和输出参数返回。因为变量范围(C#basics)。。。删除bool
以便使用字段而不是局部变量请在问题中包含一个@Someprogrammerdude,因为变量范围(C#basics)。。。删除bool
,这样您将使用字段而不是本地变量。请您的问题包括一个。@Someprogrammerdude