2013-04-05 27 views
6

Jaka jest domyślna wartość zmiennej zadeklarowanej jako dynamiczna, np. private dynamic banana;?Wartość domyślna typu dynamicznego?

Czy mogę polegać na funkcji default(), gdy typ jest określany w czasie wykonywania?

Powodem, dla którego potrzebuję znaleźć wartość domyślną jest deklaracja członka dynamicznego klasy, którą chcę ustawić raz (ale nie jako readonly), a następnie użyć go wiele razy.

Jak sprawdzić, czy zmienna dynamiczna została ustawiona na wartość inną niż domyślna, nie wiedząc, jaki typ środowiska wykonawczego prawdopodobnie będzie?

Google nie wymyślił niczego: S

Z góry dziękuję.

+1

Możesz sprawdzić typ za pomocą 'default (dyanmic.GetType())' – gdoron

+0

dlaczego nie używasz właściwości tylko do odczytu typu dynamicznego i pola typu obiektu typu? W ten sposób możesz zerwać pole wyboru. –

+0

@AkashKava, Nie ustawiam wartości w konstruktorze, więc nie mogę użyć tylko do odczytu:/ – Sinker

Odpowiedz

5

To jest null.

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

..to co miałeś na myśli?

+1

'Console.Write' nie ulega awarii po przekazaniu' null', po prostu nic nie drukuje. http://msdn.microsoft.com/en-us/library/zcwe8sfx.aspx –

+0

> @EdS., Pojawia się następujący błąd: > {"Połączenie jest niejednoznaczne między następującymi metodami lub właściwościami:" System.Console .Write (string) 'i' System.Console.Write (char []) '"} – Sinker

+4

@Sinker: To nie jest awaria –