連載改訂版 C#入門第2章 名前空間とクラス |
![]() |
2-3 メソッドのフルネーム
上記のサンプル・プログラムで、コンソールに文字列を出力するために、「Console
.WriteLine("Hello World!");」と記述した。すでに述べたとおり、Consoleはクラスの名前、WriteLineはメソッドの名前で、System名前空間に属していることがusingで指定されている。しかし、usingで指定する方法は唯一の方法ではない。例えば、この例の場合、Console.WriteLineのフルネームは、System.Console.WriteLineと書くことができる。usingを用いずに、このように書いても、メソッドを呼び出すことができる。
逆に、同じクラス内のメソッドを呼び出す場合には、名前空間だけでなく、クラス名も省略して書くことができる。
これらの関係を実際に体験するために、サンプルソースList 2-2を用意してみた。Visual Stduio .NETで試す場合は、前章で最初に挙げた「Hello World!」の作成手順と同じ手順でプロジェクトを作成後に、ソース・コードとしてList 2-2のテキストを入力する。もちろん行番号を入力する必要はない。
|
|
| List 2-2 |
List 2-2のポイントは、2つの名前空間の中に、それぞれ同じ名前のクラス、同じ名前のメソッドが書き込まれていることである。名前空間の名前はそれぞれNamespace1とNamespace2と異なっているが、その他はみな同じである。ただ、Namespace1のクラスClass1にのみMainメソッドがあるが、Mainメソッドは最初に実行されるメソッドという条件から1プログラムに2個入れるわけにはいかないので、片方にのみ記述されている。
このプログラムで特に注目すべき点は、11行目からのtestメソッドと、34行目からのtestメソッドである。見て分かるとおり、2つのメソッドは、書かれた場所が異なる名前空間という以外、まったく同じである。その内容はというと、最初にあるtest()は、名前空間もクラスも省略したメソッド呼び出しであり、次の「Class1.hello();」は、クラスは指定しているが、名前空間は省略した書き方、残りの2つは、フルネームで記述しているが、指定する名前空間の名前が異なっている。
呼び出される側のメソッドは、7行目と、30行目に用意している。どちらが呼び出されたのかが分かるように、それぞれメッセージを出力するようになっている。
さて、実行して試す前に、ちょっとだけ考えて見ていただきたい。それぞれのメソッド呼び出しは、どちらのメソッドを呼び出すだろうか?
Mainメソッドの最後の中括弧「}」にブレークポイントを仕掛けて実行してみると、結果はFig.2-2のようになる。
![]() |
| Fig.2-2 |
この結果を要約すれば、以下のようになる。
- 同じ名前のクラスやメソッドがあった場合、何も書かずに省略すると同じ名前空間やクラスの属するものが優先的に呼び出される
- 名前空間からフルネームで指定すると、同じ名前のクラスやメソッドがあっても、それぞれきちんと呼び出すことができる
つまり、たまたま自分のプログラムの中でConsoleクラスやWriteLineメソッドを作ってしまった場合でも、フルネームでSystem.Console.WriteLineと書けば自作のメソッドではなく、間違いなくコンソール出力の機能を呼び出せるというわけである。![]()
『新プログラミング環境 C#がわかる+使える』本記事は、(株)技術評論社が発行する書籍『新プログラミング環境 C#がわかる+使える』から許可を得て一部分を転載したものです。 【本連載と書籍の関係について 】 この書籍は、本フォーラムで連載した「C#入門」を大幅に加筆修正し、発行されたものです。連載時はベータ版のVS.NETをベースとしていましたが、書籍ではVS.NET製品版を使ってプログラムの検証などが実施されています。技術評論社、および著者である川俣晶氏のご好意により、書籍の内容を本フォーラムの連載記事として掲載させていただけることになりました。 →技術評論社の解説ページ ご注文はこちらから |
| INDEX | ||
| 改訂版 C#入門 | ||
| 第2章 名前空間とクラス | ||
| 2-1 C#プログラムの構造 | ||
| 2-3 メソッドのフルネーム | ||
| 「連載:改訂版 C#入門」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -




