2013-04-05 72 views
6

声明为动态变量的默认值是什么private dynamic banana;动态类型的默认值?

当运行时确定类型时,我可以依赖default()函数吗?

我需要找到默认值的原因是我声明了一个我想设置它的类的动态成员(但不是readonly),然后多次使用它。

如何在不知道运行时类型可能是什么的情况下检查动态变量是否已设置为默认值以外的其他值?

谷歌没有提出这个:S

在此先感谢。

+1

您可以使用'default(dyanmic.GetType())' – gdoron 2013-04-05 06:41:03

+0

来检查类型为什么不使用类型为object的Type dynamic&backing字段的readonly属性?这样你可以无效检查后台字段。 – 2013-04-05 06:46:32

+0

@AkashKava,我没有设置构造函数中的值,所以我不能使用只读:/ – Sinker 2013-04-05 06:47:59

回答

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 – 2013-04-05 06:50:47

+0

> @EdS。,您会收到以下错误: > {“以下方法或属性之间的调用不明确:'System.Console .Write(string)'和'System.Console.Write(char [])'“} – Sinker 2013-04-05 06:52:30

+4

@Sinker:这不是崩溃 – 2013-04-05 06:54:48