2013-04-05 4 views
6

Что такое значение по умолчанию для переменной, объявленной как динамическая, например. private dynamic banana;?Значение по умолчанию динамического типа?

Могу ли я полагаться на функцию default(), когда тип определяется во время выполнения?

Причина, по которой мне нужно найти значение по умолчанию, заключается в том, что я объявляю динамический член класса, который я хочу установить один раз (но не как readonly), а затем использовать его много раз.

Как проверить, установлена ​​ли динамическая переменная на значение, отличное от значения по умолчанию, не зная, каким будет тип выполнения?

Google придумал ничего об этом: S

Спасибо заранее.

+1

Вы можете проверить тип с помощью 'default (dyanmic.GetType())' – gdoron

+0

, почему вы не используете свойство readonly типа динамического и резервного поля типа объекта? Таким образом, вы можете не проверять поле поддержки. –

+0

@AkashKava, я не устанавливаю значение в конструкторе, поэтому я не могу использовать только чтение:/ – Sinker

ответ

5

Это null.

dynamic blah; 
Console.Write(blah); // crash 
Console.Write(blah.GetType()); // NullRef 

... это то, что вы имели в виду?

+1

'Console.Write' не сбой при передаче' null', он просто ничего не печатает. http://msdn.microsoft.com/en-us/library/zcwe8sfx.aspx –

+0

> @EdS. Вы получаете следующую ошибку: > {«Вызов неоднозначен между следующими методами или свойствами:« System.Console .Write (string) 'и' System.Console.Write (char []) '"} – Sinker

+4

@Sinker: Это не сбой –

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