一些簡單的就不描述了,摘取一些認爲比較重要能用的上的寫些隨筆。
//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