2011-10-12 71 views
0

在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,但那也不起作用。我讨厌把它作为一个单独的课程来使用。无论如何要宣布全球?

回答

5

当括号内声明的访问,你给它的范围只在括号(又名块)。

在大括号外面声明它,使它更具有范围。

在这个例子中,这将是在范围上申报块内,并成为if声明外可用:

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

我建议您阅读this article了解了一下关于C#的范围。

1

C#是块作用域,所以正在定义内的是该变量如果块

适当范围的例子:

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

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

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

你好教育署的,如果条件范围之外声明字符串,以便您可以在户外的,如果

string value1 = String.Empty; 

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

声明value1以外的条件。

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

试试这个:

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

你可以做这样的..

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

} 
0

我无法访问它指出,括号

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

0
  1. 申报所有块和方法
  2. 仔细检查的变量外,以确保你真的需要这是全球性的 - 这是一个全面的检查
  3. 设定值
  4. 空裁判检查值未设置

    //页首 private string _value; // Block _value = condition? “something”:null;

现在您有一个可以为空的值来测试(null =未设置)和可以“全局”消耗的值。