DOBON.NET DOBON.NETプログラミング掲示板過去ログ

[ ]は何の意味?

  • 題名: [ ]は何の意味?
  • 著者: いがりんちゃん
  • 日時: 2005/03/16 19:00:04
  • ID: 9856
  • この記事の返信元:
    • (なし)
  • この記事への返信:
  • ツリーを表示
環境/言語:[VB.NET]
分類:[.NET]

はじめまして、悩みに悩んでわからないので投稿させていただきました。

下記のソースで arg の変数の左右に[ ] がついていますが、これは何の
意味なのでしょうか?

[ ] がなくても動くんだけど。

ご回答のほうよろしくお願いいたします。

Private Sub Button1_Click(ByVal sender As System.Object,_
ByVal e As System.EventArgs) _
Handles Button1.Click
Call abc("あいう")
End Sub

Private Sub abc(ByVal [arg] As String)
MessageBox.Show([arg], "Title", MessageBoxButtons.OK)
End Sub
こんにちは、じゃんぬ です。

■No9856に返信(いがりんちゃんさんの記事)
> 下記のソースで arg の変数の左右に[ ] がついていますが、これは何の意味なのでしょうか?
> [ ] がなくても動くんだけど。

予約語なんかを使うときには意味があるんですけどね。

Dim [End] As Integer

[ ] があるのとないのとで比べてください。
■No9857に返信(じゃんぬねっとさんの記事)

予約語も変数として使えるってことなんですね。
ありがとうございました。
このような書き方は、積極的に書いたほうがいいのかなぁ?
どうなんだろう。

> こんにちは、じゃんぬ です。
>
> ■No9856に返信(いがりんちゃんさんの記事)
>>下記のソースで arg の変数の左右に[ ] がついていますが、これは何の意味なのでしょうか?
>>[ ] がなくても動くんだけど。
>
> 予約語なんかを使うときには意味があるんですけどね。
>
> Dim [End] As Integer
>
> [ ] があるのとないのとで比べてください。
解決済み!
> このような書き方は、積極的に書いたほうがいいのかなぁ?
自分のコーディングスタイル的に積極的に書かないほうがいいと思います。
なぜならば、予約語の名前を利用すると
後々混乱する可能性もあるからです。
また読みづらくなる上ついつい括弧を付け忘れてしまう場合があり
ビルドエラーになったりします。
どうしてもというときぐらいにしておきましょう
というより、自分はテストプログラミング以外括弧は使ったことがありませんね
■No9862に返信(シノアさんの記事)
>>このような書き方は、積極的に書いたほうがいいのかなぁ?
> 自分のコーディングスタイル的に積極的に書かないほうがいいと思います。
> なぜならば、予約語の名前を利用すると
> 後々混乱する可能性もあるからです。
> また読みづらくなる上ついつい括弧を付け忘れてしまう場合があり
> ビルドエラーになったりします。
> どうしてもというときぐらいにしておきましょう
> というより、自分はテストプログラミング以外括弧は使ったことがありませんね

括弧は使わずにプログラミングいたします。
でも、なぜこんな予約語も変数として使えるコーディング規約になっているんで
しようね。いやですね。
解決済み!
■No9896に返信(いがりんちゃんさんの記事)
> でも、なぜこんな予約語も変数として使えるコーディング規約になっているんで
> しようね。いやですね。

コーディング規約というか、字句文法ですね。

字句文法上は、変数は識別子に分類されます。識別子に対して、キーワード
(予約語)との一致を許すエスケープ識別子(=角かっこで囲まれた識別子)が規
定されているんです。他に識別子として分類されるものには、型名や型のメン
バ名などがあります。

さて、当然ですが VB.NET のキーワードと、CTS 仕様準拠の他のプログラミン
グ言語のキーワードは異なります。例えば、C# では Dim はキーワードではあ
りませんから、型名やメンバ名に自由に使えます。エスケープ識別子が規定さ
れていない場合、C# で書かれた Dim クラスは VB.NET では利用できないこと
になります。いやですね。
>
> コーディング規約というか、字句文法ですね。
>
> 字句文法上は、変数は識別子に分類されます。識別子に対して、キーワード
> (予約語)との一致を許すエスケープ識別子(=角かっこで囲まれた識別子)が規
> 定されているんです。他に識別子として分類されるものには、型名や型のメン
> バ名などがあります。
>
> さて、当然ですが VB.NET のキーワードと、CTS 仕様準拠の他のプログラミン
> グ言語のキーワードは異なります。例えば、C# では Dim はキーワードではあ
> りませんから、型名やメンバ名に自由に使えます。エスケープ識別子が規定さ
> れていない場合、C# で書かれた Dim クラスは VB.NET では利用できないこと
> になります。いやですね。
>
と言う事は、将来ほかの言語に移行するようなことがあると思われるときは、
なるべく括弧をつけてコーディングするといいということですね。
それ以外は、付けると見にくくなるからやめましょうですね。
解決済み!
■No9920に返信(いがりんちゃんさんの記事)
> と言う事は、将来ほかの言語に移行するようなことがあると思われるときは、
> なるべく括弧をつけてコーディングするといいということですね。

そういう事を書いたつもりはないです。たぶん、何か誤解があります。

エスケープ識別子が特別なのは字句解釈までです。例えば、C# のキーワード
である internal に配慮して、ソースコードの字面上 [internal] という名前
で型を宣言しても、コンパイル後のアセンブリでの型名は internal になって
います。

エスケープ識別子が意味を持つのは、これと反対のケースです。C# のプログ
ラマが意地悪して作った Dim という名前の型を、VB.NET で利用するときに、
VB.NET のソースコード上には [Dim] と書いて Dim 型を表現するんです。
  • 題名: Re[8]: [ ]は何の意味?
  • 著者: いがりんちゃん
  • 日時: 2005/03/19 18:37:59
  • ID: 9930
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
■No9925に返信(おおたさんの記事)
> ■No9920に返信(いがりんちゃんさんの記事)
>>と言う事は、将来ほかの言語に移行するようなことがあると思われるときは、
>>なるべく括弧をつけてコーディングするといいということですね。
>
> そういう事を書いたつもりはないです。たぶん、何か誤解があります。
>
> エスケープ識別子が特別なのは字句解釈までです。例えば、C# のキーワード
> である internal に配慮して、ソースコードの字面上 [internal] という名前
> で型を宣言しても、コンパイル後のアセンブリでの型名は internal になって
> います。
>
> エスケープ識別子が意味を持つのは、これと反対のケースです。C# のプログ
> ラマが意地悪して作った Dim という名前の型を、VB.NET で利用するときに、
> VB.NET のソースコード上には [Dim] と書いて Dim 型を表現するんです。
>
おおっ。なるほど。そう言う事ならよく理解できます。
ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板