※誤った内容も含まれている可能性がありますので、
参考にする場合は十分に注意してください。
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 件のコメント:
コメントを投稿