2012-03-04 2 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 или mouseover? –

ответ

1

Я думал, что значение этой строки было «пустым» в этом случае

Пока вы не инициализировать свойство, значение будет null по умолчанию. Если вы используете личное поле:

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

Тогда вы должны получить «» по умолчанию.

Надеюсь, это поможет.

+0

Да, я допустил ошибку. Ожидаемое значение равно null.Но я не могу понять, почему я получаю сообщение «не могу оценить», а не нулевое значение. – Leila

+0

Альтернативный способ установить это значение по умолчанию, которое может быть предпочтительным или не может быть выше, заключается в том, чтобы определить конструктор 'SelectStageSaveData' по умолчанию, чтобы установить свойство' '' '. –

+0

Спасибо в любом случае !! – Leila

Смежные вопросы