1. 程式人生 > 其它 >c#入門-作用域

c#入門-作用域

技術標籤:c#入門

觀察以下程式碼

Random r = new Random();
int i1 = r.Next(100);
int i2 = r.Next(100);
int i3 = r.Next(100);
if (i1 > i2)
{
	int temp = i1;
	i1 = i2;
	i2 = temp;
}
if (i2 > i3)
{
	int temp = i2;
	i2 = i3;
	i3 = temp;
}
Console.WriteLine($"i1是{i1}\ni2是{i2}\ni3是{i3}");

這是用來交換兩個變數值的過程,如果i1比i2大則交換他們

最終結果一定是i3最大

但是變數名temp聲明瞭兩次,這是為什麼呢?
試試輸出temp
在這裡插入圖片描述
在if內可用,在if外不可用


每個變數,包括其他宣告的東西,都有一個作用域
他能用的範圍僅在作用域內,超出作用域他就失效了

作用域的範圍是用大括號括起來的封閉區間及其內部
在這裡插入圖片描述
在這裡插入圖片描述
從理論上,這種寫法應該是可以的,但是c#為了安全,連前面的地方都不給用。
他的作用域延申到前面,但這個變數此時還沒有宣告,不能使用。