次の方法で共有


コンパイラ エラー C2107

無効なインデックスです、間接参照は許可されていません

ポインターではない式に添字が使われています。

値型の this ポインターを不正に使用して型の既定のインデクサーにアクセスすると、C2107 エラーが発生します。 詳細については、「this ポインターのSemanticsを参照してください。

次の例では C2107 が生成されます。

// C2107.cpp
// compile with: /clr
using namespace System;

value struct B {
   property String ^ default[String ^] {
      String ^ get(String ^ data) {
         return "abc";
      }
   }
   void Test() {
      Console::WriteLine("{0}", this["aa"]);   // C2107
      Console::WriteLine("{0}", this->default["aa"]);   // OK
   }
};

int main() {
   B ^ myb = gcnew B();
   myb->Test();
}