C#編程(二)
C#中的變量
例如:int i;//聲明一個int類型的變量,變量名是 i;在未為該變量進行賦值操作前,禁止使用該變量.使用(=)給變量賦值,在聲明之後可以 i=10來賦值.也可以在聲明一個變量的同時給它初始化例如:int i=10;也可以這樣聲明int x=10,y=20;這表示x和y都是int類型的變量.
聲明不同的變量需要使用不同的語句,即沒生命一個變量都需要用(;)來分割開來,例如:int i=0;int a=10;int b=20;
在聲明一個變量的時候一定要對其進行初始化,因為這樣做可以防止我們我一種從其他程序遺留下來的內存中獲取垃圾值.
C#中有兩個方法可以確保變量在使用之前進行了初始化:
1:變量是類或者結構中的字段,如沒有進行顯示初始化,創建這些變量的時候,默認值是0.
2.方法的局部變量必須在代碼中顯示的初始化,之後次啊能在與劇中使用它們的值.例如:
public static void Main()
{
int i;
Console.WriteLine(i);//在編譯的時候會報錯,原因是沒有進行初始化或者賦值操作便使用該變量.
}
類型推斷使用var關鍵字,聲明變量的語法有些變化.編譯器可以根據變量的初始化值來”判斷”變量的類型.例如:
var name = "zhangsan";
var age = 24;
var isRabbit = true;
Type nameType = name.GetType();
Type ageType = age.GetType();
Type isRabbitType = isRabbit.GetType();
Console.WriteLine(nameType.ToString());
Console.WriteLine(ageType.ToString());
Console.WriteLine(isRabbitType.ToString());
Console.ReadKey();
程序的輸出結果為:
System.String
System.Int32
System.Bool
在聲明推斷類型的變量的時候一定要初始化,否者編譯器沒有推斷變量類型的依據.
聲明了變量,推斷出了類型後就不能改變變量的類型了.例如:var name=”zhangsan”;name=90;這是不對的.
變量的作用域:就是一個變量的有效範圍.作用域是離變量最近的一對花括號就是該變量的作用域.在for,while或者類似語句中聲明的局部變量存在於該循環體內.
另外同一個變量不能聲明兩次.下兩兩個例子幫助理解:
for (int i = 0; i < 10; i++)
{
Console.WriteLine(i);
}
for (int i = 9; i >= 0; i--)
{
Console.WriteLine(i);
}
可以這麽做的原因為第一個i在第一個循環中有效,第二個i在第二個循環中有效,互不影響.
但是如果這樣:
int j = 0;
for (int i = 0; i < 10; i++)
{
int j = 20;
Console.WriteLine(j);
}
則會產生錯誤.原因為是第一個j的作用域包含了循環中的j,所以產生了相當於二次定義的錯誤.
namespace day1
{
class Program
{
static int j = 10;//這是類級別的變量,相當於全局變量
static void Main(string[] args)
{
int j = 20;//這是方法級別的變量.
for (int i = 0; i < 10; i++)
{
Console.WriteLine(j);
}
Console.ReadKey();
}
}
}
可以得出,一個變量在一個方法中不能聲明兩次;類級別的變量可以和方法級別的變量同名,但是在使用改變量的時候的時候遵循就近原則,通常是使用方法級別的變量.
如果想要使用類級別的變量可以用類名.變量名使用該變量
class Program
{
static int j = 10;
static void Main(string[] args)
{
int j = 20;
Console.WriteLine(j);//輸出結果為20
Console.WriteLine(Program.j);//輸出結果為10,類級別的變量.
Console.ReadKey();
}
}
C#編程(二)