2011-10-12 72 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 =未設置)和可以「全局」消耗的值。