じゃんぬのどっとてきすと

雑記とネタと時々プログラミング

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  982  : 記事  4  : コメント  16093  : トラックバック  277

ニュース

My Website

初心者向けのサイトです。

C# と VB.NET の入門サイト

最近のできごと

少し前に女のコが生まれました。家事と育児と仕事にと奮起しています。めちゃくちゃかわいいです。あと Blog の更新は全然してませんが、Twitter とかでアホなこと呟いています。見つけることができたら、ぜひフォローしてあげてください。けっこう喜びます。

Sponsored Link1

Sponsored Link2

Archive

書庫

J# 2005 で @beanproperty タグ が追加されました。
名前で想像がつくと思いますが、Bean スタイルのプロパティが使用できるというものです。

前バージョンの J# にも、@property というタグがあり、プロパティの定義はできました。
J# は Java を踏襲しているので、C# や VB のように構文としてプロパティをサポートしていません。
アクセサ メソッドの名前付けパターンによる解決をしているだけです。

@property タグの場合、Get アクセサの代わりとなるのは、「get_」で始まるメソッドです。
これに対して、Set アクセサの代わりとなるのは、「set_」で始まるメソッドです。
もちろん、従来どおり「is_」についても使用できます。

public class Class1 {

    // プロパティ変数
    private int _value;

    /** @property */
    public int get_value() {
        return this._value;
    }

    /** @property */
    public void set_value(int v) {
        this._value = v;
    }

}

@beanproperty タグの場合、アンダーバーを除いた形になります。

public class Class1 {

    // プロパティ変数
    private int _value;

    /** @beanproperty */
    public int getvalue() {
        return this._value;
    }

    /** @beanproperty */
    public void setvalue(int v) {
        this._value = v;
    }

}

J# から使用する場合は、あくまでもアクセサ メソッドとして使用することになります。
ただし、C# や VB.NET から参照で追加された場合は、プロパティ アクセサとして使用できます。
結局のところ、スタイルが変わっているだけに過ぎません。(;^-^)

個々の属性の付与については、@attribute.method 属性で行うことになります。

投稿日時 : 2006年4月28日 17:13

コメント

# re: J#2005 で追加された @beanproperty タグ 2006/04/30 11:23 シャノン
例によって Java 疎いので、また恥を晒しに来ました。

まず、「@property」だの「@beanproperty」だのは属性ではないんですよね。「タグ」ってのは C# とか VB.NET には無い概念だなぁ。
ともあれ、これは J# の言語規格の一部ってことでいいのかな。

そして、JavaBeans ってのは、Java の…何なんだろう、拡張仕様? コーディング規約? 少なくとも、Java 言語の規格には入ってないですよね。
これが、よくわからない「タグ」とやらでなく、「カスタム属性」であったなら、個人的にまだ救いがあったのですが…。カスタム属性なら言語規格の一部ではない、ライブラリの一部ですから、抵抗無いんですけどね。

個人的には、「言語自体の機能がショボくて、標準ライブラリが豊富な言語」と「組み込み関数が多機能な言語」では、俺は前者の方が好きです。
が、J# は後者的なのかな?
あまりストイックでなく、ある程度後者的な言語を好む人は、それを「実用的だ」と言いますが、俺は「汚い言語」という感想になってしまいますね。

ともあれ、前回も言ってましたが、J# の方向性が明確になったようです。
最早 J# は Java 言語の規格から離れてもいいはずで、VB みたいに public proeprty int getHoge みたいなキーワード拡張構文を用意してもいいと思うんですが、それをしない。
可能な限り Java に対する「一見した言語自体の拡張」を抑え(る代わりに、必要な拡張はコメントっぽく紛れ込ませたりと手を尽くし)て、Java からの移行組に違和感が無いようにしている。
やっぱり、C# までの「繋ぎ」の言語に過ぎないのですね。

# re: J# に追加された @beanproperty タグ 2006/05/07 16:28 じゃんぬ
多分、言語としての予約語やキーワードを増やす気はないでしょうね。
個人的には、enum, struct, property, foreach, readonly は欲しかったのですが...

C# と区別がつかなくなるでしょうね。
final とか extends とか import とか、微妙な違いがあるだけで...

Post Feedback

タイトル
名前
Url:
コメント: