0

Activator.CreateInstace() を使用してジェネリック インスタンスを作成しています。しかし、これを使用してオブジェクトのインスタンスを作成すると:

public class SelectStageSaveData
{
    public string GlobalPartnershipPoints { get; set; }
}

コードをデバッグして GlobalPartnershipPoints を表示しようとすると、「式を評価できませんでした」というメッセージが表示されます。この場合、この文字列の値は「空」だと思っていましたが、値を取得できません。誰が何が起こっているのか知っていますか?前もって感謝します。

アップデート:

インスタンスを作成するコード:

  if (!isolatedStorage.FileExists(file))
  {
        this.SaveData<T>((T)Activator.CreateInstance(typeof(T)), file);
  }

また

  if (!isolatedStorage.FileExists(file))
  {
        this.SaveData<T>(Activator.CreateInstance<T>(), file);
  }

両方で同じ結果が得られます。

4

1 に答える 1

1

この場合、この文字列の価値は「空」であると思いました

プロパティを初期化するまで、値はnullデフォルトになります。プライベート フィールドを使用する場合:

public class SelectStageSaveData
{
    private string _GlobalPartnershipPoints = "";
    public string GlobalPartnershipPoints 
    { 
      get { return _GlobalPartnershipPoints;} 
      set { _GlobalPartnershipPoints = value; }
     }
}

次に、デフォルトとして "" を取得する必要があります。

それが役に立てば幸い。

于 2012-03-04T20:46:57.097 に答える