C# Keywords - as
記錄一下在日常開發(fā)過程中遇到的一些C# 基礎(chǔ)編程的知識!
希望以后能用的著。知識是在平常的開發(fā)過程中去學(xué)到的。只有用到了,你才能深入的理解它,并用好它。
本資料來源于:MSND
下面是一些相關(guān)的code ?和 說明。
As 關(guān)鍵字 (屬于運(yùn)算符關(guān)鍵字)
?
可以使用? as 運(yùn)算符執(zhí)行轉(zhuǎn)換的某些類型 在兼容之間的引用類型 或可以為 null的類型。 這段話不好理解,說白了就是強(qiáng)制類型轉(zhuǎn)換不會throw exception。?
??????? class Base
??????? {
??????????? public override string ToString()
??????????? {
??????????????? return "Base";
??????????? }
??????? }
??????? class Derived : Base
??????? {
??????? }
?
?class Program
??????? {
??????????? static void Main()
??????????? {
????????????? Derived d = new Derived();
??????????????? Base b = d as Base;? // 引用類型的強(qiáng)制類型轉(zhuǎn)換
??????????????? if (b != null)
??????????????? {
??????????????????? Console.WriteLine(b.ToString());
??????????????? }
}
?
?重點(diǎn)注意:
As 運(yùn)算符類似于強(qiáng)制類型轉(zhuǎn)換操作,但是唯一不同的是,如果轉(zhuǎn)換是不可能的,as會返回 null 而不引發(fā)異常。
expression as type ? ?這兩給表達(dá)式的效果是一樣的。
Expression is type ? (type)expression : (type)null
注意的是:?as?運(yùn)算符執(zhí)行只引用轉(zhuǎn)換、nullable 轉(zhuǎn)換和裝箱轉(zhuǎn)換。?as?運(yùn)算符不能執(zhí)行其他轉(zhuǎn)換,如用戶定義的轉(zhuǎn)換,應(yīng)是通過使用轉(zhuǎn)換的表達(dá)式。
class ClassA { }
class ClassB { }
class Program
{
static void Main()
{
object[] obj = new object[6];
obj[0] = new ClassA();
obj[1] = new ClassB();
obj[2] = "Hello";
obj[3] = 100;
obj[4] = 365.23;
obj[5] = null;
foreach (var val in obj)
{
string str = val as string; // 如果此刻類型轉(zhuǎn)換失敗,不會拋異常,而是賦空引用 null
if (str != null)
{
? ? ? ? ?Console.WriteLine("string: " + str);
}
else
{
? ? ? ?Console.WriteLine(val + " not string type");
}
}
? ? ? ? ? ?Console.ReadLine();
}
}
?
轉(zhuǎn)載于:https://www.cnblogs.com/htwdz-qhm/p/4153890.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的C# Keywords - as的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hive连接超长Hbase宽表异常
- 下一篇: 网名i是什么含义78个