C++ cli 解释。你可以回答这个问题。它是如何引用c的?我相信我可以很容易地用c编写类似的代码,并引起同样的奇怪行为。因此,使用c#的用户可能会遇到同样的问题,我在这里给出了一个解决方案。此外,我认为问题与IL或JIT编译器有关,因此它也与.net有关。非静态类方法隐

C++ cli 解释。你可以回答这个问题。它是如何引用c的?我相信我可以很容易地用c编写类似的代码,并引起同样的奇怪行为。因此,使用c#的用户可能会遇到同样的问题,我在这里给出了一个解决方案。此外,我认为问题与IL或JIT编译器有关,因此它也与.net有关。非静态类方法隐,c++-cli,nullreferenceexception,C++ Cli,Nullreferenceexception,解释。你可以回答这个问题。它是如何引用c的?我相信我可以很容易地用c编写类似的代码,并引起同样的奇怪行为。因此,使用c#的用户可能会遇到同样的问题,我在这里给出了一个解决方案。此外,我认为问题与IL或JIT编译器有关,因此它也与.net有关。非静态类方法隐藏了用于访问类成员的“this”参数。所以,当使用null引用调用此类方法时,它可能无法尝试访问类成员。但一般来说,这是未定义的行为,它可能会在呼叫线路上崩溃。@AlexFarber:谢谢你的解释。你可以回答这个问题。它是如何引用c的?我相信我


解释。你可以回答这个问题。它是如何引用c的?我相信我可以很容易地用c编写类似的代码,并引起同样的奇怪行为。因此,使用c#的用户可能会遇到同样的问题,我在这里给出了一个解决方案。此外,我认为问题与IL或JIT编译器有关,因此它也与.net有关。非静态类方法隐藏了用于访问类成员的“this”参数。所以,当使用null引用调用此类方法时,它可能无法尝试访问类成员。但一般来说,这是未定义的行为,它可能会在呼叫线路上崩溃。@AlexFarber:谢谢你的解释。你可以回答这个问题。它是如何引用c的?我相信我可以很容易地用c编写类似的代码,并引起同样的奇怪行为。因此,使用c#的用户可能会遇到同样的问题,我在这里给出了一个解决方案。此外,我认为问题与IL或JIT编译器有关,因此它也与.net有关。非静态类方法隐藏了用于访问类成员的“this”参数。所以,当使用null引用调用此类方法时,它可能无法尝试访问类成员。但一般来说,这是未定义的行为,它可能会在呼叫线路上崩溃。@AlexFarber:谢谢你的解释。你可以回答这个问题。它是如何引用c的?我相信我可以很容易地用c编写类似的代码,并引起同样的奇怪行为。因此,使用c#的用户可能会遇到同样的问题,我在这里给出了一个解决方案。此外,我认为问题与IL或JIT编译器有关,因此它也与.net有关。非静态类方法隐藏了用于访问类成员的“this”参数。所以,当使用null引用调用此类方法时,它可能无法尝试访问类成员。但一般来说,这是未定义的行为,它可能会在呼叫线路上崩溃。@AlexFarber:谢谢你的解释。你可以回答。我知道
m_bInit
等于
this->m_bInit
。但是我不知道编译器的其他细节。非常感谢。(顺便说一句:我将删除C标记,因为我现在看到它与C无关)。我知道
m#u bInit
等于
this->m#u bInit
。但是我不知道编译器的其他细节。非常感谢。(顺便说一句:我将删除C标记,因为我现在看到它与C无关)。我知道
m#u bInit
等于
this->m#u bInit
。但是我不知道编译器的其他细节。非常感谢。(顺便说一句:我将删除C标记,因为我现在看到它与C无关)。我知道
m#u bInit
等于
this->m#u bInit
。但是我不知道编译器的其他细节。非常感谢。(顺便说一句:我将删除C#标记,因为我现在看到它与C#无关)。
ref class CTest
{
  bool m_bInit;

  void func()
  {
    if (!m_bInit)
      return;
    ...
  }
  ...
}