C# 變量更多的內(nèi)容 隱式轉(zhuǎn)換
隱式轉(zhuǎn)換不需要做任何工作,也不需要另外編寫代碼??紤]下面的代碼:
varl = var2;
如果var2的類型可以隱式地轉(zhuǎn)換為varl的類型,這條賦值語(yǔ)句就涉及隱式轉(zhuǎn)換。這兩個(gè)變量的類型也可 能相同,此時(shí)就不需要隱式轉(zhuǎn)換。例如,ushort和char的值是可以互換的,因?yàn)樗鼈兌伎梢源鎯?chǔ)0和65 535 之間的數(shù)字,在這兩種類型之間可以進(jìn)行隱式轉(zhuǎn)換,如下面的代碼所示:
ushort destinationVar; char sourceVar =;
destinationVar = sourceVar;
WriteLine($HsourceVar val: (sourceVar)M);
WriteLine($"destinationVar val: (destinationVar)M);
這里存儲(chǔ)在sourceVar中的值放在destinationVar中。在用兩個(gè)WriteLineO命令輸出變量時(shí),得到如下結(jié)果:
sourceVar val: a destinationVar val: 97
即使兩個(gè)變量存儲(chǔ)的信息相同,使用不同的類型解釋它們時(shí),方式也是不同的。
簡(jiǎn)單類型有許多隱式轉(zhuǎn)換,bool和string沒有隱式轉(zhuǎn)換,但數(shù)值類型有一些隱式轉(zhuǎn)換。下表列出了編譯 器可以隱式執(zhí)行的數(shù)值轉(zhuǎn)換(記住,char存儲(chǔ)的是數(shù)值,所以char被當(dāng)作數(shù)值類型)。
類 型 | 可以安全地轉(zhuǎn)換為 |
byte | short, ushort, int, uint, long, ulong, float, double,decimal |
sbyte | short, int, long, float double, decimal |
short | int, long,float, double, decimal |
ushort | int, uint, long, ulong,float,double,decimal |
int | long,float,double,decimal |
uint | long, ulong, float, double, decimal |
long | float, double,decimal |
ulong | float, double,decimal |
float | double |
char | ushort, int, uint, long, ulong, float, double, decimal |
點(diǎn)擊加載更多評(píng)論>>