다음을 통해 공유


컴파일러 오류 C3104

잘못된 특성 인수

특성에 잘못된 인수를 지정했습니다.

자세한 내용은 특성 매개 변수 형식을 참조하세요.

이 오류는 Visual Studio 2005에 대해 수행된 컴파일러 규칙 작업의 결과로 생성될 수 있습니다. 관리되는 배열을 사용자 지정 특성에 전달할 때 배열의 형식은 더 이상 집계 초기화 목록에서 추론되지 않습니다. 이제 컴파일러에서 배열의 형식과 이니셜라이저 목록을 지정해야 합니다.

예제

다음 샘플에서는 C3104를 생성합니다.

// 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{};

다음 샘플에서는 C3104를 생성합니다.

// 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 {};