类似下面这种写法,编译器会报错:
public LoadInfo(string name, string url, string extension = "glb", Vector3 offset = Vector3.zero)
{
this.name = name;
this.url = url;
this.extension = extension;
this.offset = offset;
}
报错的原因是Vector3.zero不是编译时常量。
最后面的参数offset的默认值应该改成下面写法:
Vector3 offset = default
还有一个,就是发现C#里面有这样的写法,就是类型后面加?意思就是允许值类型有空值,类似这样:
Vector3? offset = null;
就是表示这个offset没有值,就是什么值都没有,连Vector3.zero也不是。

文章讨论了在C#中,使用Vector3.zero作为默认参数值导致的编译错误,指出应使用`default`关键字来设定默认值。另外,文章还提到了可空值类型(nullabletype)的概念,如`Vector3?`,允许值类型变量接受null值。

4640

被折叠的 条评论
为什么被折叠?



