2012年5月9日水曜日

開発環境

  • Microsoft Windows 7 Home Premium (OS)
  • Microsoft Visual C# 2010 Express Edition (IDE)
  • 言語: C#

独習C# 第3版 ハーバート・シルト (著) エディフィストラーニング株式会社 矢嶋聡 (監修, 翻訳) の第14章(プリプロセッサ、実行時の型の識別、null許容型、高度なトピック)の理解度チェック4、5、6を解いてみる。

4.

isキーワードはオブジェクトのがある型かどうか判定する役割がある。

構文

オブジェクト is 型

コード

using System;

class A { }
class B : A { }

class Tester
{
    public void Run()
    {
        A a = new A();
        B b = new B();
        object[] objs = { a, b };
        foreach (object obj in objs)
        {
            Console.WriteLine(obj is A);
            Console.WriteLine(obj is B);
        }
    }
    static void Main()
    {
        Tester t = new Tester();
        t.Run();
    }
}

入出力結果(Console Window)

True
False
True
True
続行するには何かキーを押してください . . .

5.

asキーワードには変換を失敗した際、例外を投げるのではなくnullを返すというメリットがある。

コード

using System;

class A { }
class B : A { }

class Tester
{
    public void Run()
    {
        A a = new A();
        B b = new B();
        A aa = b as A;
        B bb = a as B;
        object[] objs = { aa, bb };
        foreach (object obj in objs)
        {
            if (obj == null)
            {
                Console.WriteLine("null");
            }
            else
            {
                Console.WriteLine(obj);
            }
        }
    }
    static void Main()
    {
        Tester t = new Tester();
        t.Run();
    }
}

入出力結果(Console Window)

B
null
続行するには何かキーを押してください . . .

6.

コード

using System;

class A { }
class B : A { }

class Tester
{
    public void Run()
    {
        int? n = null;
        if (n == null)
        {
            Console.WriteLine("null");
        }
        n = 10;
        Console.WriteLine(n);
    }
    static void Main()
    {
        Tester t = new Tester();
        t.Run();
    }
}

入出力結果(Console Window)

null
10
続行するには何かキーを押してください . . .

0 コメント:

コメントを投稿