无法评估表达式:Activator.CreateInstance <t>()</t>

时间:2012-03-04 20:26:22

标签: c# windows-phone-7 generics activator

我使用Activator.CreateInstace()创建通用实例。但是当我用它来创建一个对象的实例时:

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

我收到消息&#34;无法评估表达式&#34;当我调试代码并尝试查看GlobalPartnershipPoints时。我认为这个字符串的值是&#34;空的&#34;在这种情况下,但我无法获得任何价值。有谁知道发生了什么?提前谢谢。

更新:

我创建实例的代码:

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

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

我得到了相同的结果。

1 个答案:

答案 0 :(得分:1)

  

我认为此字符串的值在这种情况下为“空”

在初始化属性之前,默认情况下该值为null。如果您使用私人字段:

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

然后你应该默认为“”。

希望它有所帮助。