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

时间:2011-10-12 19:02:07

标签: c#

在C#的下面粗略的示例代码中,我必须在条件中声明一个字符串,我无法从该大括号中访问它

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

在上面的代码编译器中说The name 'value1' does not exists in the current context我需要声明value1,以便必须在整个页面中访问它。我试过了protected value1,但这也行不通。我讨厌将它作为一个单独的类使用。无论如何要在全球范围内宣布吗?

8 个答案:

答案 0 :(得分:5)

在大括号内声明时,只在大括号内(也就是块)给它范围。

在大括号之外声明它以增加范围。

在此示例中,它将在声明块的范围内,并且可以在if语句之外使用:

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

我建议阅读this article以了解C#中的范围。

答案 1 :(得分:1)

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; 

答案 2 :(得分:0)

您需要声明if条件范围之外的字符串,以便您可以在if

之外访问它
string value1 = String.Empty;

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

答案 3 :(得分:0)

在条件之外声明value1

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

答案 4 :(得分:0)

试试这个:

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

答案 5 :(得分:0)

你可以这样做..

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

}

答案 6 :(得分:0)

  

我无法从该大括号中访问它

这就是C#的工作原理。你在一对大括号内定义的任何东西都不能存在于它之外。你必须在大括号开始前将其缩小。

答案 7 :(得分:0)

  1. 在所有块和方法之外声明变量
  2. 仔细检查以确保您确实需要全局 - 这是理智检查
  3. 设置值
  4. 空引用,检查是否未设置值

    //返回页首  private string _value;  //块  _value =条件? “something”:null;

  5. 现在你有一个可以为null的值来测试(null = not set)和一个可以“全局”消耗的值。