当在Xbox上使用时,可选参数显然在C#Xna中不起作用,因为在编译过程中会声明非替代性。
我有这样的情况:
func(float? a = null, int? b = null)
对于大量的thease可选参数,默认为“未定义”值,为null。这种情况是必需的。
在上面的简化示例中,可以将其解包,尽管这不是可选参数所允许的:
func()
func(float? a)
func(int? b)
func(float? a, int? b)
但是,对于大量参数,这是不切实际的。
不允许使用参数定义的某些组合,并且会导致通过函数的路径(我抛出参数异常),而另一些组合会导致各种不同的情况发生,具体取决于参数的值。这类似于具有相同名称但不相同的函数之间的多态性。
我可以替代地并且可能最实际地代替所有参数。
func(float? a, int? b)
然后这样调用:
func(null, 4)
第一个未定义的位置。
有没有一种方法可以在Xbox上的C#XNA中启用可选参数,而不使用上述任何一种方法?
最佳答案
我当然已经在XBOX上使用可选参数运行了,但是它需要对构建设置进行一些调整。我记得它不适用于WP7。
我认为这可能与所使用的语言版本有关。
查看以下链接:
http://msdn.microsoft.com/en-us/library/ff827884.aspx
http://forums.create.msdn.com/forums/p/54007/327944.aspx