ページ

2010年9月14日火曜日

またタイトル書くの忘れた

今更C#について少しずつまとめてみようかと思う。
※誤った内容も含まれている可能性がありますので、
参考にする場合は十分に注意してください。
2010.09.14 新規投稿

3."using"とは?
C#やVBでは、.NET Frameworkと言うマイクロソフトの
ランタイムライブラリを使用します。
using句。名前空間で型の使用を許可する場合。
これにより、その名前空間内では、型を修飾しないで使用できます。(MSDNより抜粋)
要はC++で言うところの using namespace に近いですかね。

ちなみにこの using句 ですが、全ての宣言の前に宣言しなければなりません。
要はファイルの先頭に記述しなければならないと言う事ですね。

■C++の場合
namespace Hoge {
    static int i = 0;
    void hoge()
    {
        i++;
    }
}

void main()
{
    Hoge::hoge();
}

■C#の場合
// ----------------------------------- 
// Hoge.cs
// ----------------------------------- 
namespace Hoge {
    class cHoge {
        private int i;
        /// コンストラクタ
        public cHoge()
        {
            i = 0;
        }
        public void hoge()
        {
            i++;
        }
    }
}

// ----------------------------------- 
// HelloWorld.cs
// using Hoge; 宣言をした場合
// ----------------------------------- 
namespace HelloWorld {
    class cHelloWorld {
        private cHoge _hoge;
        /// コンストラクタ
        public cHelloWorld()
        {
            _hoge = new cHoge();    // ←ココポイント
        }
    }
}

// ----------------------------------- 
// HelloWorld.cs
// using Hoge; 宣言をしない場合
// ----------------------------------- 
namespace HelloWorld {
    class cHelloWorld {
        private Hoge.cHoge _hoge;
        /// コンストラクタ
        public cHelloWorld()
        {
            _hoge = new Hoge.cHoge();    // ←ココポイント
        }
    }
}

■もう一歩踏み込むとこんな感じになります。
// こんな感じの場合
namespace Hoge {
    namespace InHoge {
        class cInHoge {
            public cInHoge()
            {
            }
        }
    }
}

// using句を使用しない場合
Hoge.InHoge.cInHoge    var = new Hoge.InHoge.cInHoge();

// using句を使用した場合
using Hoge.InHoge;
cInHoge    var = new cInHoge();


と言う分けで、using句の説明でした。
名前空間の概念を先に説明するべきでしたかね(namespace)

0 件のコメント:

コメントを投稿