我正在尝试访问.NET结构成员,但是即使对于这个简单的示例,编译也会失败:
.h:
using namespace System::Drawing;
namespace MyNamespace{
public ref class MyClass{
public:
MyClass();
static const System::Drawing::Size MinimumSize = System::Drawing::Size(20,20);
}
}
.cpp:
#include "MyInclude.h"
MyClass::MyClass(){
int i = MinimumSize.Width;
// .....
}
将MinimumSize.Width分配给局部变量i的语句无法编译:
当我删除声明中的“ const”,但我想保持该值为公共且只读时,赋值编译没有错误。
有人可以提示我如何指定吗?
答案 0 :(得分:1)
我刚刚尝试过:当我尝试将MinimumSize.Width分配给'i'时,'initonly'会产生两条消息:
加上消息
我正在使用此解决方案:
int i = (( System::Drawing::Size)MinimumSize).Width;
此强制类型转换摆脱了'const',可进行编译而没有任何错误/警告,并可以按预期执行。还是这有点过分用力?
关于PaulTheHacker