<****> 宣言文 と言う記述について

解決


hiroshi  2012-01-14 18:25:40  No: 143239

ネットである事を調べていたら、下記の表現にぶつかりました。
<DllImport("user32.dll", CharSet:=CharSet.Auto)> _
Private Shared Function SendInput( _
&nbsp;&nbsp; ************ _
&nbsp;&nbsp; ********) As Integer
End Function

全体の意味より前に、<****>  宣言文  と言う表現が初めてで、
いろいろ調べましたがこの記述自体を説明しているサイトが見つかりませんでした。
私が持っている何冊かの本にも載っていません。
長年VBを使ってきたのですが、何か基本的な事をすっ飛ばして勉強してきたようで、
恥ずかしながら教えて頂きたく宜しくお願いします。


魔界の仮面弁士  2012-01-17 17:55:26  No: 143240

それは VB.NET で追加された「属性」という機能であり、
レガシーVB(VB6 や VBA)では利用できません。

モジュール・クラス・構造体・メソッド・引数・戻り値・アセンブリなどに
付与することで、それらに追加の情報を付与させるためのメタデータです。

指定された属性データは、コンパイラ、ランタイム、開発環境などで
読み取られて利用されます。

たとえば、属性の中でも <DllImport(…)> という宣言は、
プラットフォーム呼び出し(Windows API の呼び出し)を
指示するための物で、従来の VB では「Declare」という
キーワードで宣言されていたものに相当します。
(VB.NET でも Declare は使えますが、DllImport の方が高機能です。)


hiroshi  2012-01-18 01:35:09  No: 143241

魔界の仮面弁士さん  回答ありがとうございました
アンダーバー( _)と言うのは長い文を綴るのを複数の行に分けて表記するため使われますが、きわどい表記方法を考え出したものですね。


魔界の仮面弁士  2012-01-18 04:23:48  No: 143242

> アンダーバー( _)と言うのは長い文を綴るのを複数の行に分けて
最近の VB だと、行継続文字( _)も省略可能だったりします。

> きわどい表記方法を考え出したものですね。
「<」や「>」について言えば、これは属性や不等号比較演算子のみならず、
「<< 演算子」のためにも使われるようになりました。
また、下記のように XML リテラル でも利用されています。
http://msdn.microsoft.com/ja-jp/library/bb384460.aspx

以下に、VB2008→VB2010の差分(新機能)を紹介しておきます。
旧VBとの違いを網羅しているわけではないため、これだけを見ても
分からない部分はあるかと思いますが、一応、参考情報として。
http://msdn.microsoft.com/ja-jp/magazine/ee336123.aspx


huroshi  2012-01-19 02:39:20  No: 143243

魔界の仮面弁士さん  ご丁寧に説明ありがとうございます
勉強になりました


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加