2012年4月1日日曜日

開発環境

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

独習C# 第3版 ハーバート・シルト (著) エディフィストラーニング株式会社 矢嶋聡 (監修, 翻訳) の第6章(Cメソッドとクラスの詳細)の理解度チェック4、5を解いてみる。

4.

コード

using System;

public class Test
{
    private int a;
    public Test(int a)
    {
        this.a = a;
    }
    public int A
    {
        get { return a; }
        set { a = value; }
    }
    public void Swap(Test t1, Test t2)
    {
        int tmp = t1.a;
        t1.a = t2.a;
        t2.a = tmp;
    }
    public void Display()
    {
        Console.WriteLine(a);
    }
}

class Tester
{
    public void Run()
    {
        Test t1 = new Test(10);
        Test t2 = new Test(20);
        Console.WriteLine(
            "{0}, {1}", t1.A, t2.A);
        t1.Swap(t1, t2);
        Console.WriteLine(
            "{0}, {1}", t1.A, t2.A);
    }
    static void Main()
    {
        Tester t = new Tester();
        t.Run();
    }
}

入出力結果(Console Window)

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

5.

問題のコードは正しくない。methメソッドの引数の数が同じでぶつかってる。引数の数が異なればメソッドのオーバーロードとなり正しい。

正しいコードにしてみる。

コード

using System;

public class X
{
    public int meth(int a, int b)
    {
        return a + b;
    }
    public string meth()
    {
        return "Hello, World!";
    }
}

class Tester
{
    public void Run()
    {
        X x = new X();
        Console.WriteLine(x.meth(5, 10));
        Console.WriteLine(x.meth());
    }
    static void Main()
    {
        Tester t = new Tester();
        t.Run();
    }
}

入出力結果(Console Window)

15
Hello, World!
続行するには何かキーを押してください . . .

0 コメント:

コメントを投稿