编译器错误 C3904

“property_accessor”:必须指定参数数量

根据属性维数查看 getset 方法中的参数数量。

  • get 方法的参数数量必须等于属性的维数,或者对于非索引属性来说,参数数量为零。

  • set 方法的参数数量必须比属性的维数大 1。

有关详细信息,请参阅 property

示例

以下示例生成 C3904。

// C3904.cpp
// compile with: /clr /c
ref class X {
   property int P {
      // set
      void set();   // C3904
      // try the following line instead
      // void set(int);

      // get
      int get(int, int);   // C3904
      // try the following line instead
      // int get();
   };
};

以下示例生成 C3904。

// C3904b.cpp
// compile with: /clr /c
ref struct X {
   property int Q[double, double, float, float, void*, int] {
      // set
      void set(double, void*);   // C3904
      // try the following line instead
      // void set(double, double, float, float, void*, int, int);

      // get
      int get();   // C3904
      // try the following line instead
      // int get(double, double, float, float, void*, int);
   }
};