C# Keywords - as

記錄一下在平常開發過程當中遇到的一些C# 基礎編程的知識!express

但願之後能用的着。知識是在日常的開發過程當中去學到的。只有用到了,你才能深刻的理解它,並用好它。編程

本資料來源於:MSNDide

下面是一些相關的code  和 說明。spa

As 關鍵字 (屬於運算符關鍵字)code

 

可使用  as 運算符執行轉換的某些類型 在兼容之間的引用類型 或能夠爲 null的類型。 這段話很差理解,說白了就是強制類型轉換不會throw exception。 開發

        class Basestring

        {it

            public override string ToString()io

            {class

                return "Base";

            }

        }

        class Derived : Base

        {

        }

 

 class Program

        {

            static void Main()

            {

              Derived d = new Derived();

                Base b = d as Base;  // 引用類型的強制類型轉換

                if (b != null)

                {

                    Console.WriteLine(b.ToString());

                }

}

 

 重點注意:

As 運算符相似於強制類型轉換操做,可是惟一不一樣的是,若是轉換是不可能的,as會返回 null 而不引起異常。

expression as type    這兩給表達式的效果是同樣的。

Expression is type ? (type)expression : (type)null

注意的是: as 運算符執行只引用轉換、nullable 轉換和裝箱轉換。 as 運算符不能執行其餘轉換,如用戶定義的轉換,應是經過使用轉換的表達式。


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; // 若是此刻類型轉換失敗,不會拋異常,而是賦空引用 null
if (str != null)
{
         Console.WriteLine("string: " + str);
}
else
{
       Console.WriteLine(val + " not string type");
}
}
           Console.ReadLine();

} }

相關文章
相關標籤/搜索