当在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

07-24 09:43
查看更多