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