const Vector4 colorBlack = new Vector4(0,0,0,1);//Vector4 is struct
public static void example(Vector4 color = colorBlack) //not ok
{
//do something
}
const int someInt = 0;
public static void exampleInt(int n = someInt) // ok
{
}
我想知道“编译时常量”到底是什么。从这里开始
这只是意味着标记为 const 的成员的每个实例都将在编译期间替换为其值,而 readonly 成员将在运行时解析。
所以我假设如果我的 colorBlack 为 const,那么它将是编译时常量,但编译器会告诉我不然。但它不会抱怨“const int some int = 0;” 是编译时常量。
为什么?