我有一个类似的问题,这个 SO question中描述的问题
在我的情况下,可选参数默认值是:
1.在单独的 C++/CLI dll 中定义。
2. 已在该库中定义为“public static const”
当我尝试将该值用作 C# 的默认参数值时,我得到“必须是编译时间常量”。
有没有办法在(C++/cli)库和(C#)应用程序之间共享一个公共的常量值?
C++/CLI 库:
namespace MyCPlusPlusCLILib {
public ref class CPPCLIClass {
public:
static const double Invalid = -1;
}
C#代码:
public MyMethod(double fish = MyCPlusPlusCLILib.CPPCLIClass.Invalid) { }
// C# compiler error "Must be a compile time const"
或者
const double MyConstDouble = MyCPlusPlusCLILib.CPPCLIClass.Invalid;
// C# compiler error "Must be a compile time const"