2011-01-17 2 views
1

DefaultValue 특성을 사용하여 응용 프로그램에 작성하는 사용자 지정 클래스의 기본값을 정의하고 싶습니다. 그 클래스는 그의 창시자에게 문자열을 준다. 나는 다음과 쓰기 :C#의 DefaultValue 특성

[DefaultValue(Type.GetType("MyClass"),"hello world")] 

을하지만 난이 응용 프로그램을 실행하려고 할 때. 오류 :

"An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type".

누구든지 내게 어떤 문제를 설명 할 수 있습니까?

답변

6

Type.GetType("MyClass") 어디에서 typeof(MyClass)을 사용해야합니다.

+0

작동하지만, 이제는이 속성의 가치를 부여 할 수 없습니다. 나는 그것을 줄 수 있도록 무엇을 써야할까요? – RRR

+0

나는 당신이하려고하는 것을 상세히 설명 할 필요가 있다고 생각한다. –

+0

나는 그의 값이 int 나 char이 아닌 열거 형을 만들려고한다. 그래서 나는 각 값 앞에 - [DefaultValue (Type.GetType ("MyClass"), "11:00:00")를 쓰고 MyClass의 ctor에 문자열을 파싱합니다. 하지만 이제는 DefaultValue 특성에 쓰는 값을 각 값에 대해 어떻게 recive 할 수 있습니까? – RRR

2

나는 그것의 Type.GetType ("MyClass")을 의심한다;

대신 typeof 및 string을 전달하여 typeof (MyClass)를 시도해 볼 수 있습니까?

+0

작동하지만 지금은이 속성의 값을 제공 할 수 없습니다. 나는 그것을 줄 수 있도록 무엇을 써야할까요? – RRR

+0

오류가 발생합니까? 나는 이것을 다음과 같이 읽었을 뿐이다. http://www.eggheadcafe.com/software/aspnet/32319410/defaultvalue-attribute-on-properties-of-user-controls.aspx 값이 보일 때를 조금 설명한다. DefaultValueAttributes를 사용하기 전에 사용하지 않았다는 것을 인정해야합니다. 좀 더 자세하게 설명 할 수 있다면 도움이 될 것입니다. 이 스레드의 다른 녀석들도이 코멘트를 볼 수 있다면 도움이 될 수도 있습니다. – WraithNath

1

Type.GetType()은 다른 표현대로 (즉, 상수 표현이 아님) typeof을 사용하는 방법입니다.

[DefaultValue(typeof(MyClass),"Convertible String")] 

편집 : 당신이 이렇게하는 방법의 아이디어를 얻을 this documentation의 예 섹션을 참조 그걸로 TypeConverter를 연결해야 사용자 정의 클래스에 문자열의 변환을 가능하게합니다.

+0

작동하지만 지금은이 속성의 값을 제공 할 수 없습니다. 나는 그것을 줄 수 있도록 무엇을 써야할까요? – RRR

+0

DefaultValue 속성을 많이 사용하지는 않았지만 입력 할 때 입력 할 필요가 없었습니다. 더 많은 것을 사용하고자하므로 bool : [DefaultValue (false)]와 같은 값을 입력했습니다. 복잡한 유형의 경우 값을 변환하는 방법을 조사해야합니다. 클래스가 작동하려면 인터페이스를 구현해야합니다. –

+0

답변이 업데이트되었습니다. –

관련 문제