- PR -

アクセッサのsetにつきまして。

1
投稿者投稿内容
ベル
会議室デビュー日: 2002/12/01
投稿数: 18
投稿日時: 2003-04-27 20:34
いつも拝見させていただき、勉強させていただいております。

アクセッサについてお教え願いたいのですが。
今、TextBoxを継承し、独自のプロパティ(Para)を追加
"testです!!"という文字を初期値として設定しております。

このコントロールをForm上に配置。
"testです!!"という初期値を他の文字に変更し、実行を行なうと
setが起動し_Paraの値が変更した文字として受け取れるのですが、

この初期値をnull(消してしまう)とsetが起動せず、
_Paraの値が、初期値の"testです!!"となってしまいます。

初期値をnullに変更しても
setが起動してくれ、valueの値がnullであると認識させたいのですが、
解決方法をご存知の方がいましたらお教え下さい。宜しくお願い致します。

具体的にはこのようなコーディングにしているのですが。
public class Test : System.Web.UI.WebControls.TextBox
{
  private string _Para= "testです!!";

  public String Para
  {
    get
    {
     return _Para;
    }
    set
    {
     _Para = value;
    }
  }

  protected override void AddAttributesToRender
             (System.Web.UI.HtmlTextWriter writer)
  {
   // 省略
  }
}
ふうすけ
常連さん
会議室デビュー日: 2002/02/21
投稿数: 44
お住まい・勤務地: 東京
投稿日時: 2003-04-30 11:15
DefaultValueAttribute を使って初期値がnullでないと教えてあげれば解決すると思います。
ベル
会議室デビュー日: 2002/12/01
投稿数: 18
投稿日時: 2003-04-30 17:30
ふうすけさん、ありがとうございます。

[DefaultValue("testです!!")]でsetが起動するようになりました。

ただnullを入れた場合、
valueの値は " " <=空白1バイトとなってしまいました。
とりあえずsetの中で判断し_Paraにはnullを戻すようにしましたが、
何かおかしいのでしょうか?
1

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