とりこらぼ。

Learn from yesterday,
live for today,
hope for tomorrow.

目次

Blog 利用状況

ニュース

プロフィール

  • 名前:とりこびと
    とるに足らない人間です。

  • Wankuma MVP
    for '平々凡々'

Web Site

  • Memo(Of T)

もうひとつの Blog

広告っぽい

書庫

日記カテゴリ

隠された何かを探してみたし。

というわけ(?)で、今回も Visual Basic コンパイラ と Visual Studio 2005 の便利機能によって隠された何かを調べてきました。

まず、最初に Visual Studio 2005 を使用して Visual Basic で WindowsApplication プロジェクトを作成します。プロジェクト名は「WindowsApplication1」でいいや。するとご存知のとおり、Form1 クラスの作成までやってくれますね。Form1 のコードを表示してみると、

Public Class Form1

End Class

・・・これだけです。すでに怪しさ全開ですよね?
では次に、Visual Studio 2005 を使用して C♯で WindowsApplication プロジェクトを作成してみましょう。やったことない方も Visual Basic と同じ要領でできます。こちらもForm1 のコードを表示してみると、

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication1 {     public partial class Form1 : Form     {         public Form1()         {             InitializeComponent();         }     }
}

なにやらいっぱい出てきましたね・・・。一応 Visual Basic で書き直したのがこちら↓

Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Text
Imports System.Windows.Forms

Namespace WindowsApplication1
  Partial Public Class Form1     Inherits Form
    Public Sub New()
      InitializeComponent()
    End Sub
  End Class
End Namespace

じっと見つめていると、いくつか分かることがあります。まず、以前のエントリで Sub New は省略してもいけますよ♪ってことはやりました。それと、Partial キーワードInherits ステートメントは Form1.Designer.vb ファイルのほうにちゃんと書かれています。これらは今回触れないでおきます。

では、ナニが足りないのか・・・って、見るからに 'Imports' と 'NameSpace' がないんですよね。それぞれを検索してみると

MSDN:Imports ステートメント(http://msdn2.microsoft.com/ja-jp/library/7f38zh8x(VS.80).aspx)

MSDN:Namespace ステートメント(http://msdn2.microsoft.com/ja-jp/library/0dx91cw5(VS.80).aspx)

大切なことじゃないですか!Imports ステートメントが書かれてなかったら毎回 System.・・・ って書くか、自分でImports ステートメントを書かなければいけないんですよ?NameSpace も毎回書かせるんですか!?いやいや、

Visual Basic がそんなことさせるわけないぢゃん!

試しに一番最初のコードを以下のように書き加えてみると・・・

Public Class Form1

  Public Sub New()
    MessageBox.Show("このメッセージは、100%リサイクルされた電子で転送されています。")
  End Sub
End Class

・・・エラーになりませんね。MessageBox クラスは System.Windows.Forms 名前空間にあります。本来なら

System.Windows.Forms.MessageBox.Show("このメッセージは、100%リサイクルされた電子で転送されています。")

って書かなければいけないはずですよね?疑うべきは・・・

またコンパイラがいろいろやってくれてんな・・・。

というわけで、Visual Basic コンパイラ のオプション一覧からそれっぽいの探してきました。

MSDN:/imports (Visual Basic) (http://msdn2.microsoft.com/ja-jp/library/64c84czf(VS.80).aspx)

MSDN:/rootnamespace(http://msdn2.microsoft.com/ja-jp/library/58kxttdx(VS.80).aspx)

なるほど、コンパイル時に解決してくれるんですね。でもおかしいですよ?コンパイラはどの名前空間をImports してなにを RootNameSpace にするかは、知らないはずです。どうなっているんでしょう?

ぢつはこれは Visual Studio の仕業(?)です。先ほどのWindowsApplication1 というプロジェクトの プロパティを見てみましょう。

Imports のほうは、[参照]タブの「インポートされた名前空間」というリストがコレです。ここでチェックボックスでチェックした項目が /imports オプションに指定されるんですね。試しにリストの中の「System.Windows.Forms」のチェックをはずしてみてください。先ほどの MessageBox.Show(・・・) はコンパイルエラーになります。

NameSpace のほうはすぐに分かります。[アプリケーション]タブの「ルート名前空間」という項目がコレです。ここに指定した内容が /rootnamespace オプションに指定されるんですね。


といった感じで、Visual Basic はそのすべてをコード上で見せてくれないんです。知りたがりな私にはちょっぴり寂しい。

Visual Basic コンパイラって、知れば知るほど「ケッ、部屋を片付けるおかんじゃねーんだから勝手にやるなよぽぴ王子さん)」ですねぇ。





C♯で自動的にコードファイルに挿入される using ステートメント ってどこで制御できるんだろ・・・?

投稿日時 : 2007年3月13日 11:26

Feedback

# re: 隠された何かを探してみたし。 2007/03/13 11:39 επιστημη

∑(゚Д゚)ハッ! ないっ! ベッド下のえっち本がないっ! ← おかんのシワザ

# re: 隠された何かを探してみたし。 2007/03/13 13:21 とりこびと

επιστημηさん、コメントありがとうございます。

>∑(゚Д゚)ハッ! ないっ!

私好みな~ってそんなイメージついちゃってますか?orz
・・・男の子ですものね♪(言い訳)

# re: 隠された何かを探してみたし。 2007/03/13 15:30 ぽぴ王子

むしろベッドの下に隠しておいたエロ本が机の上にジャンル別に整理整頓されて置いてあったりするような感じ、でしょうかね。

# re: 隠された何かを探してみたし。 2007/03/13 15:51 シャノン

どちらかというと、ベッドの下にいつの間にか知らないエロ本があったイメージ?

# re: 隠された何かを探してみたし。 2007/03/13 15:55 とりこびと

コメントありがとうございます・・・。

>ぽぴ王子さん
>シャノンさん

しかしなぜエロス気味なメタファなんですか?w
しかも徐々に正しい方向に向かってるしwww

# re: 隠された何かを探してみたし。 2007/03/13 16:25 επιστημη

なんて理解のある"おかん"なんだ。
てゆっか気ぃまわし過ぎなんだよぉ orz

# かわりにマットレスに敷き込んである"お宝"が行方不明

# re: 隠された何かを探してみたし。 2007/03/13 16:50 とりこびと

επιστημηさん、コメントありがとうございます。

>なんて理解のある"おかん"なんだ。
>てゆっか気ぃまわし過ぎなんだよぉ orz

おかんを Visual Basic に置き換えてみてもなぜかしっくりくるこの心地よさw

あ、Visual Basic はえっち本を仕込んではくれませんよ~!>健全な皆様。

# re: 隠された何かを探してみたし。 2007/03/13 20:01 ぽぴ王子

> あ、Visual Basic はえっち本を仕込んではくれませんよ~!>健全な皆様。

え、そうなん?
せっかくC#からVisualBasicに乗り換えようと思ってたのに(アホか)

# 乗り換えちゃらめぇぇぇ~

# re: 隠された何かを探してみたし。 2007/03/13 20:25 とりこびと

ぽぴ王子さん、コメントありがとう(?)ございます。

>せっかくC#からVisualBasicに乗り換えようと思ってたのに

え!?乗り換えの理由になるんですか!?w
そんなんで乗り換えちゃ【ホントに】らめぇぇぇぇ~

# Visual Studio 2005 で C♯ライクな Visual Basic のWindowsApplication プロジェクトのテンプレートを作ってみようと試みたけど。 2007/03/20 9:50 とりこびと ぶろぐ。

Visual Studio 2005 で C♯ライクな Visual Basic のWindowsApplication プロジェクトのテンプレートを作ってみようと試みたけど。

# Visual Studio 2005 で C♯ライクな Visual Basic のWindowsApplication プロジェクトのテンプレートを作ってみようと試みたけど。 2007/03/20 9:51 とりこびと ぶろぐ。

Visual Studio 2005 で C♯ライクな Visual Basic のWindowsApplication プロジェクトのテンプレートを作ってみようと試みたけど。

# re: 隠された何かを探してみたし。 2018/08/28 12:09 wwwe

http://www.adidasstore.us.com
http://www.christian-louboutin.eu.com
http://www.yeezy700.us.com
http://www.truereligion-outlets.us.com
http://www.nike-airmax90.us.com
http://www.curry4shoes.us.com
http://www.shoesjordan.us.com
http://www.nfljerseys.us.org
http://www.yeezyboost.in.net

タイトル
名前
Url
コメント