2012-03-04 11 views
1

私はActivator.CreateInstace()を使用して汎用インスタンスを作成しています。私は、オブジェクトのインスタンスを作成するためにこれを使用する場合でも:式を評価できませんでした:Activator.CreateInstance <T>()

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

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

UPDATE:私はinstace作成

コード:

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

または

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

を私は両方で同じ結果を得ます。

+0

CreateInstance()を呼び出すコードを確認できますか? –

+0

インスタンス化コードを表示できますか? –

+0

どうやって見ようとしていますか? SaveDataにステップインし、QuickWatchまたはマウスオーバーを使用しますか? –

答えて

1

私はあなたがプロパティを初期化するまでは、値はデフォルトでnullになります。この場合

にこの文字列の値が「空」と思っていたしました。プライベートフィールドを使用する場合:

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

デフォルトでは、 ""を取得する必要があります。

希望します。

+0

はい、私は間違いをしました。期待値はnullです。しかし、私が理解できないのは、なぜ「評価できませんでした」というメッセージと、ヌル値ではないことです。 – Leila

+0

このデフォルト値を設定するもう1つの方法は、上記の方法よりも望ましいかもしれませんが、デフォルトの 'SelectStageSaveData'コンストラクタを定義してプロパティを' '" 'に設定することです。とにかくおかげさまで –

+0

! – Leila

関連する問題