0

プロパティの基本クラスがあります

  public class Parameters
  {
    public string caption
    {
        get;
        set;
    }

    public string subcaption
    {
        get;
        set;
    }
    public string bgColor
    {
        get
        {
            if (bgColor == " ")
                return bgColor = "FFFFFF";
            else
                return bgColor;
        }
        set { bgColor = value; }
    }
 }
 //some other properties with default return values

他のクラスはこのクラスを継承し、stringbuilder を返すメソッドを持っています。

    public class Bar : Parameters
      {
    public StringBuilder GetXML()
    {
        StringBuilder xmlData = new StringBuilder();
        xmlData.Append("<chart bgColor='" + bgColor + "'"
                     + " caption='" + caption + "'"
                     + " subcaption='" + subcaption + "'>");//mentioned here are some properties there are many in the xmldata.append function 
        return xmlData;
    }
      }

現在、他のクラスがオブジェクトを宣言してこのメ​​ソッドにアクセスしようとしています

      Bar XML = new Bar();
            XML.caption = "Caption";
            XML.subcaption = "subcap"; //setting values properties which dont have default return values 
            XML.GetXML();

デバッガーが GetXML メソッドに入ると、デバッガーは自分自身を強制的に閉じます。ここで欠けているものはありますか?これに関連するものですか?

4

1 に答える 1

1

これは壊れたコードです。

 return bgColor = "FFFFFF";

文字列ではなくブール値として評価されます。

また、ゲッターで存在しないバッキング フィールドを使用しようとしています。

次のようなことを試してください:

private string _bgColor;
  public string bgColor
  {
     get
     {
        if (string.IsNullOrEmpty(_bgColor))
        {
           _bgColor = "FFFFFF";
        }

        return _bgColor;
     }
     set { _bgColor = value; }
  }
于 2012-11-28T12:20:13.563 に答える