- 整數(shù)類型的Literal可使用10/16進(jìn)制符號托嚣, 16進(jìn)制是在前面加上0x前綴
int x = 127;
long y = 0x7F;
- 實(shí)數(shù) 使用小數(shù)點(diǎn)巩检,可以使用指數(shù)形式
數(shù)值Literal的類型判斷:
默認(rèn)情況下,編譯器會推斷一個數(shù)值Literal是double還是整數(shù)類型:
- 如果包含小數(shù)點(diǎn)示启,或以指數(shù)形式展現(xiàn)兢哭,那么就是double類型
- 否則literal的類型是下面列表中第一個能容納該數(shù)值的類型: int, unit夫嗓, long迟螺,ulong
數(shù)值的后綴
- float float f = 1.0F
- double double d = 1D;
- decimal decimal d = 1,0M
- uint unit i = 1U;
- long long i = 1L;
- ulong ulong i = 1UL;
decimal
- 所有的整數(shù)類型可以被隱式轉(zhuǎn)換為decimal類型
- 反過來則必須進(jìn)行顯式轉(zhuǎn)換
checked
- checked會告訴運(yùn)行時, 如果整型的表達(dá)式或語句超出了該類型的極限舍咖,那么就會拋出overflowexception
- checked操作符對 ++ ,--,+, -, *, / 起作用
- checked可以用于表達(dá)式或語句
- checked 對float和double不起作用
int a = 1000000;
int b = 1000000;
int c = checked(a*b);
checked {
int d = a*b;
}
- 想不檢查 用unchecked
8,16 位整數(shù)類型
沒有自己的算術(shù)運(yùn)算符矩父, c#會按需對它們進(jìn)行隱式轉(zhuǎn)換到大一點(diǎn)的整數(shù)類型
short x = 1, y =2;
short z = (short)( x +y);
WeChat Screenshot_20190712100804.png
NaN
- 使用 == 時, NaN不等于任何一個值排霉,包括NaN
- 使用Object.Equals()方法時窍株, 兩個NaN是相等的
- 驗(yàn)證某個值是否為NaN float.isNan() double.IsNan()
bool
- bool類型無法和數(shù)值類型進(jìn)行相互轉(zhuǎn)換
- == 和!= 操作符在用來比較相等性的時候,通常都會返回bool
- 對于值類型, == 和!= 就是比較他們的值
- 對于引用類型球订,默認(rèn)情況下后裸,就是比較他們的引用
- && || 可以用來判斷與和或
- && || 都有短路機(jī)制
- & 和 | 也可以用來判斷與和或的條件, 但是沒有短路機(jī)制辙售,so很少用來條件判斷上
- & | 當(dāng)使用于數(shù)值的時候轻抱,& 和 | 執(zhí)行的是按位操作
string 字符串連接
- 操作符
- 如果其中一個操作數(shù)不是string類型,那么會調(diào)用他的toString方法
- 大量使用+ 做字符串連接的效率很低旦部,最好使用StringBuilder
string interpolation
$"dfdfdf{x}sdfdf"
string 比較
- string不支持>, <等比較操作符
- 需要使用CompareTo方法