По-видимому, необязательные параметры не будут работать в C# Xna при использовании на Xbox, во время компиляции указывается, что они не поддерживаются.
У меня такая ситуация:
func(float? a = null, int? b = null)
При большом количестве этих необязательных параметров, которые по умолчанию имеют «неопределенное» значение, значение null. Эта ситуация обязательна.
В приведенном выше упрощенном примере это можно развернуть, хотя это не разрешено необязательными параметрами:
func()
func(float? a)
func(int? b)
func(float? a, int? b)
Однако при большом количестве параметров это нецелесообразно.
Некоторые комбинации определений параметров не разрешены и приводят к путям через функцию, где я выбрасываю исключения аргументов, другие приводят к различным вещам, происходящим в зависимости от значений параметров. Это похоже на полиморфизм между функциями с одинаковыми именами, но это не одно и то же.
Вместо этого я мог бы, и, вероятно, наиболее практично, потребовать все параметры.
func(float? a, int? b)
Затем вызовите так:
func(null, 4)
Где первое не определено.
Есть ли способ включить необязательные параметры в C# XNA на Xbox вместо использования одного из вышеперечисленных вариантов?