我正在接管一个C ++ CLI项目,其中一个文件StartScreen.xaml.h
在Visual Studio 2013中引发了一个IntelliSense错误。以下是代码片段:
public ref class StartScreen sealed
{
public:
StartScreen();
void SetApp(App^ app);
void ShowProgressRing();
void HideProgressRing();
internal:
static float imagePercentage;
....
这是造成问题的最后一行。 imagePercentage
抛出错误
108 IntelliSense: public data members are not allowed in non-value types
这是什么意思以及如何(如果有的话 - 它编译没有编译器错误)我应该修复它吗?
答案 0 :(得分:3)
我猜它只是IntelliSense中的一个错误。 C ++ / CLI和C ++ / CX共享语法,但似乎有一些不同的规则。在这种情况下,C ++ / CX不允许公共/内部字段:
C ++ / CLI没有这样的限制(这就是它为你编译的原因)。 Intellisense可能只是(错误地)在C ++ / CLI和C ++ / CX之间共享此规则。
如果你真的想要一个内部可见的字段,我会忽略Intellisense。如果它困扰你,你可以把它改成一个属性,那就是你的解决方法。