private static Vector2 DefaultMulFactors = new Vector2(0.5f, 0.5f);
private static Point DefaultShifts = new Point(0,0);
public static Vector2 Function(Vector2? mulFactors = MyClass.DefaultMulFactors , Point? shifts = MyClass.DefaultShifts )
{
...
return result;
}
为什么我的代码不接受我的静态值?如何为我的函数参数指定默认参数?确实Vector2? mulFactors = new Vector(0.2,0.3)
或Vector2? mulFactors = Vector2.Zero
不起作用。
答案 0 :(得分:6)
null
:
, Point? shifts = null)
然后:
if(shifts == null) shifts = MyClass.DefaultShifts;
答案 1 :(得分:4)
来自MSDN:
每个可选参数都有一个默认值作为其定义的一部分。 如果没有为该参数发送参数,则使用默认值。 默认值必须是以下类型的表达式之一:
一个常量表达式;
新形式ValType()的表达式,其中ValType是一个值 类型,例如枚举或结构;
表单default(ValType),其中ValType是一个值 类型。
没有提及的案例是你的,这就是为什么它不适合你! :)