在c#中全局声明一个字符串

本文关键字:一个 字符串 全局 声明 | 更新日期: 2023-09-27 18:11:10

在下面c#的粗略示例代码中,我必须在条件中声明一个字符串,并且我无法从大括号

中访问它
if(//some condition)
{
string value1 = "something";
}
//push to database value1

在上面的代码编译器中说The name 'value1' does not exists in the current context,我需要以这样一种方式声明value1,即必须在整个页面中访问它。我试过protected value1,但那也不起作用。我讨厌把它作为一个单独的类来使用。有全局声明吗?

在c#中全局声明一个字符串

当在大括号内声明时,你只给它在大括号内(也就是块)的作用域。

在大括号外声明它,给它更大的作用域。

在本例中,它将位于声明块的作用域内,并且可以在if语句之外使用:

string value1;
if(//some condition)
{
  value1 = "something";
}
//push to database value1

我建议阅读这篇文章来了解c#中的作用域。

c#是块作用域,所以你要在if块中定义变量

正确的范围示例:

string value1 = someCondition ? "something" : string.Empty;

string value1 = string.Empty;
if (someCondition)
{
    value1 = "something";
}

string value1;
if (someCondition)
    value1 = "something";
else
    value1 = string.Empty; 

您需要在if条件的作用域之外声明string,以便您可以在if

之外访问它
string value1 = String.Empty;
    if(//some condition)
    {
     value1 = "something";
    }

在条件语句之外声明value1

string value1;
if(//some condition)
{ 
   value1 = "something";
} 

试试这个:

 string value1 = string.Empty;
 if (//condition)
     value1 = "something"

你可以这样做…

string value1= ""
if(some condition)
{
  value1 = "something";
}

我无法从括号

中访问它

这就是c#的工作原理。在大括号内定义的任何内容都不能存在于大括号之外。您必须在大括号开始之前声明它。

  1. 在所有块和方法之外声明变量
  2. 双重检查,以确保你真的需要这是全局的-这是完整性检查
  3. 设置值
  4. Null refcheck,如果值没有设置

    //页面顶部私有字符串_value;//块_value = condition ?

现在您有一个可空的值来测试(null = not set)和一个可以"全局"使用的值。