C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

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

Re[3]: 自分からは書き換えられないプロパティの定義が欲しい


(過去ログ 109 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■64818 / inTopicNo.1)  自分からは書き換えられないプロパティの定義が欲しい
  
□投稿者/ howling (156回)-(2013/01/11(Fri) 18:04:30)

分類:[雑談] 

お世話になっております。

ふと思ったことなんですが、
主にC#にて、クラスのメンバやプロパティにアクセス権限というのがあると思います。

public,protected,private…あとはinternalなんてのもありますね。

ただ、自分自身がアクセスできない権限って無いですよね?
ImageListなどの、データ自体が大きい物の場合、
一か所でイメージを作成して、それを色々なクラスで参照して使う、なんてのをやってます。

その場合のコードは簡単に以下のような感じなのですが、

public class ParentClass
{
    private ImageList m_clsImageList = new ImageList();
    private ChildClass m_clsChildClass = new ChildClass();
    public ParentClass()
    {
        m_clsImageList.Images.Add(new Icon(Assembly.GetExecutingAssembly().GetManifestResourceStream("MyProject.Icon.ico")));
        m_clsChildClass.BindImageList = m_clsImageList;        
    }
    public ~ParentClass()
    {
        //解放処理
    }
}
public class ChildClass
{
    public ImageList BindImageList
    {
        set; //この例で言ってみれば、ここに自分はアクセスできない権限が欲しいなぁ
        get;
    }
    public ChildClass()
    {}
//この先、BindImageListを取得することはあっても割り当てることはない
}

コメントにも書いてありますが、ChildClassのプロパティにそんな権限があったらいいなぁと。
もちろん、そんなのはコーディングしている側で気をつければ良い話なのですが、それはおいといて。
そもそもこういう設計が間違い、というのであればそれはそれで知りたいです。

みなさんはどう思いますか?

引用返信 編集キー/
■64820 / inTopicNo.2)  Re[1]: 自分からは書き換えられないプロパティの定義が欲しい
□投稿者/ オショウ (57回)-(2013/01/11(Fri) 21:37:44)
> みなさんはどう思いますか?

  VB.NET なら、ReadOnly Property
  C# なら、get だけ

  で、よいのではないでしょうか?

以上。
引用返信 編集キー/
■64821 / inTopicNo.3)  Re[2]: 自分からは書き換えられないプロパティの定義が欲しい
□投稿者/ Azulean (79回)-(2013/01/11(Fri) 22:44:42)
get だけのプロパティと readonly なフィールドを組み合わせればよいと思いますが、それでは不十分なんでしょうか?(Value Object という考え方)
引用返信 編集キー/
■64823 / inTopicNo.4)  Re[3]: 自分からは書き換えられないプロパティの定義が欲しい
□投稿者/ howling (157回)-(2013/01/11(Fri) 23:35:50)
オショウさん
Azulean さん

readonlyなんてあったんですね…。全く使ってなかったorz
コンストラクタで、と考えるなら別にいけますね。なるほど…。
勉強になりました。ありがとうございました!

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -