- PR -

リードオンリーなプロパティのセッター処理な部分の書き方

投稿者投稿内容
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-05-23 11:10
コード:
#region Value
public string Value {
    get {
        return this._Value;
    }
}

private string _Value;

#endregion



リードオンリーなプロパティなので、set {} が書けないのですが、今まで set {} で行ってきた値の検証や、値が変更されたタイミングで処理していたものは、皆さんはどのように書いていますか?

コード:
#region Value
public string Value {
    get {
        return this._Value;
    }
}

private ValueSet(string value) {
    if (value == "今なら480円") {
        this._Value = value;
    }
}
private string _Value;

#endregion



このようにメソッドを追加してみたのですが、#region に含めるべきなのか、メソッド名はどのように命名しているのか、メソッドを使わない良い方法があるのかなど、皆さんのご意見を伺いたいのですが。
標準的な「やり方」があるのでしたら、それに従って書きたいと思います。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-23 11:21
2.0 からは Setter と Getter のアクセス修飾子を個別に設定できますよね。
1.1 以前は、Java 的命名で Set 〜 でしょう。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2006-05-23 11:45
NAL-6295です。

もし、C#のバージョンが2.0であれば、
異なるアクセス修飾子のプロパティが作成できたはずなので、
readonlyにせずに、setアクセサだけprotectedやら、privateやらにすれば
良いのではないかと思いますがいかがでしょうか?
masa
大ベテラン
会議室デビュー日: 2004/10/28
投稿数: 161
投稿日時: 2006-05-23 11:46
NET2.0で、set を protected にした場合、
みなさん、XMLコメントはどのようにかいていらっしゃいますか?

public int Value {
 get { return _Value; }
 protected set { _Value = value; }
}

NSDN風にいうと、"取得または設定できます" とするか "取得できます" とするか。
派生クラスを作るときには前者として見えてほしいところですが・・・。

NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2006-05-23 11:49
引用:

masaさんの書き込み (2006-05-23 11:46) より:
NET2.0で、set を protected にした場合、
みなさん、XMLコメントはどのようにかいていらっしゃいますか?

public int Value {
 get { return _Value; }
 protected set { _Value = value; }
}

NSDN風にいうと、"取得または設定できます" とするか "取得できます" とするか。
派生クラスを作るときには前者として見えてほしいところですが・・・。




私の場合は、”取得できます。”とします。
_________________
「伝える」とは「人に云う」と書く。
http://d.hatena.ne.jp/NAL-6295/
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-23 11:51
引用:

masaさんの書き込み (2006-05-23 11:46) より:

NET2.0で、set を protected にした場合、
みなさん、XMLコメントはどのようにかいていらっしゃいますか?


通常、クラス ライブラリとしてのコメントなので、
public 修飾子でないものは、ReadOnly なコメントにします。
ですので、"取得します" になります。

"取得または設定します" は、双方とも public 修飾子の場合のみですね。

# 被ったので、追記カキコ。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
masa
大ベテラン
会議室デビュー日: 2004/10/28
投稿数: 161
投稿日時: 2006-05-23 12:01
やっぱり "取得できます" ですよね。

インテリセンスでアクセス可能かどうかが出てくれるといいんですけどね。
記憶があいまいですけど出てないですよね?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-23 12:47
引用:

masaさんの書き込み (2006-05-23 12:01) より:

インテリセンスでアクセス可能かどうかが出てくれるといいんですけどね。
記憶があいまいですけど出てないですよね?


はい、表示されませんね。
現在の編集中の場所を判断すれば、IDE 上は実現できそうなんですけどね。

# コンパイラが弾いてくれるので、不自由はあまりしませんが...

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌

スキルアップ/キャリアアップ(JOB@IT)