今天學習發現有段代碼的輸出結果有些理解不了,如圖1,輸出的結果全部為 false;
圖1
后來和同事討論研究了一下才明白,原來是這樣:↓
class Program { static void Main(string[] args) { //輸出在屏幕上的 //string s = "10"; //bool b=int.TryParse(s,out int i); object obj = 10; string i1 = obj as string;//obj轉換string失敗這里相當於是賦值了null,相當於聲明了變量之后並未賦值:string i1; string i2 = obj as string; //i1 = 1;//無法將類型“int”隱式轉換為“string” i1 = "hehe";//不報錯 Console.WriteLine(i1);//"hehe",實際i1是string類型,只不過當一個變量的值為null的時候,他就不是任何類型了 // Console.WriteLine(i1 is null); //Console.WriteLine(obj is int);//true Console.WriteLine(i2 is object);//false Console.ReadKey(); } }