2013-01-24 30 views
0

使用Using語句和{} Scope修飾符時,如何獲取其外的值?這在程序代碼中就像一個匿名函數,但事實並非如此。使用和{}大括號內的C#範圍和值

using (SqlConnection m_DBCon = new Something()) 
{ 
    int x = 1; 
} 

{ 
    int y = 3; 
} 

x; // not found 
y; // not found 

回答

6

聲明你的使用塊之前需要變量,然後裏面進行分配。

int x; 

using (SqlConnection m_DBCon = new Something()) 
{ 
    x = 1; 
} 

// x == 1 
3

你可以使用:

int x, y; 
using (SqlConnection m_DBCon = new Something()) 
{ 
    x = 1; 
} 

{ 
    y = 3; 
} 

// x = 1, y = 3 
1

您使用塊之前就聲明變量,那裏面訪問它們。

int x; 
int y; 
using (SqlConnection m_DBCon = new Something()) 
{ 
    x = 1; 
} 

{ 
    y = 3; 
} 

x; 
y; 
0

只需更改變量的範圍。 (並可能初始化它們。)

int x = 0; 
int y = 0; 
using (SqlConnection m_DBCon = new Something()) 
{ 
    x = 1; 
} 
{ 
    y = 3; 
} 
+0

不,不要使用假名初始值設定項。這隻會掩蓋錯誤。 –