Megosztás a következőn keresztül:


C3104-fordítási hiba

illegális attribútum argumentuma

Megjegyzések

Érvénytelen argumentumot adott meg egy attribútumhoz.

További információ: Attribútumparaméter-típusok .

Ez a hiba a Visual Studio 2005-höz készült fordítómegformálási munka eredményeként hozható létre: ha felügyelt tömböket ad át egyéni attribútumoknak, a tömb típusa már nem következik be az összesítési inicializálási listából. A fordítónak most meg kell adnia a tömb típusát és az inicializáló listát.

Példák

Az alábbi példa C3104-et hoz létre.

// C3104a.cpp
// compile with: /clr /c
using namespace System;

[AttributeUsage(AttributeTargets::Class)]
public ref struct ABC : public Attribute {
   ABC(array<int>^){}
   array<double> ^ param;
};

[ABC( {1,2,3}, param = {2.71, 3.14})]   // C3104
// try the following line instead
// [ABC( gcnew array<int> {1,2,3}, param = gcnew array<double>{2.71, 3.14})]
ref struct AStruct{};

Az alábbi példa C3104-et hoz létre.

// C3104b.cpp
// compile with: /clr /c
// C3104 expected
using namespace System;

int func() {
   return 0;
}

[attribute(All)]
ref class A {
public:
   A(int) {}
};

// Delete the following 2 lines to resolve.
[A(func())]
ref class B {};

// OK
[A(0)]
ref class B {};