C#からVBへの自動トランスレーターを介してコードを実行すると、次のようなコードが変換されました。
Public Property Title As [String]
これはどのように違うのですか
Public Property Title As String
そして、なぜ両方が存在するのですか?
C#からVBへの自動トランスレーターを介してコードを実行すると、次のようなコードが変換されました。
Public Property Title As [String]
これはどのように違うのですか
Public Property Title As String
そして、なぜ両方が存在するのですか?
String
キーワードです。キーワードを識別子として使用する場合は、角かっこで囲む必要があります。[String]
は識別子です。String
キーワードは常にSystem.String
クラスを参照しますが、現在の名前空間で指定された[String]
独自のクラスを参照することもできます。String
あなたが持っていると仮定するとImports System
、両方ともほとんどの場合同じものを参照しますが、それらは異なる可能性があります:
Module Test
Class [String]
End Class
Sub Main()
Dim s As String = "Hello World" // works
Dim s2 As [String] = "Hello World" // doesn't work
End Sub
End Module
キーワードを識別子として扱うために存在する主な理由は、[ ]
VBキーワードをタイプ名またはメンバー名として使用する可能性のある他の言語のライブラリとの相互運用性です。
[]を使用すると、c#の@のように、VBキーワードを識別子として使用できます。ここでは役に立たない。
その例では、何もしません。(*)ただし、角かっこを使用して、予約語を識別子として使用できます。例えば:Dim [String] as String
[String]
編集:(*)彼らが参照している可能性があると呼ばれる独自のクラスを定義していない限り