c#高級編程第七版-第七章運算符與類型的強制轉換

一些簡單的就不描述了,摘取一些認爲比較重要能用的上的寫些隨筆。

//x++和++x的區別
int x=5;
if(x++==6)//false 因爲先比較然後再+
{
//....
}
int x=5;
if(++x==6)//true 先加完然後再比較
{
 //.....
}
//單獨一行時x++和++x一樣,即
int x=5;
x++;
if(x==6)//true
{
//....
}
int x=5;
++x;
if(++x==6)//true 
{
 //.....
}

條件運算符

(?:)也稱爲三元運算符是(if"""else""")的簡化版本。

語法:
condition? true_value:false_value;

//舉個例子
int x=1;
int y= x==2? 2:3;
//結果y=3; 因爲x=1,所以x!=2,取後面的值

check和uncheck

byte x=255;
checked//會報錯,因爲值溢出
{
  x++
}
unchecked//不會報錯,值爲255,因爲byte最大值爲255
{
  x++
}

is運算符

//is 判斷類型
int x=5;
if(x is object)//true  判斷x是不是object類型,int從objet繼承過來
{
//''''
}
if(x is string)//false 因爲x不是string類型
{
//.....
}

as運算符

若要轉換的內容與指定的類型兼容,轉換則會成功進行,若不兼容則返回null.

object a="hello";
object b=3;
string x=a as string;//true x="hello"
string y=b as string;//false y=null
//tip:as只能用於可以爲null的類型

sizeof運算符

值類型需要的長度

 double a-sizeof(int) //a=4 因爲int是4個字節的。

typeof運算符

typeof運算符返回特定類型的system.type類型(反射中用到)。

可空類型和運算符

正常來說,int,bool這些類型不能設置爲null,但是如果在程序中使用可空類型,就要考慮null情況(數據庫,表格什麼),其中一個操作數或者兩個操作數爲null,則結果爲null.

int? a=null;
int? b=a+4;//b=null
int? c=a*4;//c=null,int!int? 即int d=b*4會報錯,int?不能轉換成int

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章