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