Атрибут DefaultValue в C # - PullRequest
       1

Атрибут DefaultValue в C #

1 голос
/ 17 января 2011

Я хочу использовать атрибут DefaultValue, чтобы определить значение по умолчанию для пользовательского класса, который я пишу в своем приложении. класс дает в своем конструкторе строку. Я пишу следующее:

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

но когда я пытаюсь запустить это приложение. Даю ошибку:

"Аргумент атрибута должен быть константное выражение, выражение типа или выражение для создания массива тип параметра атрибута ".

Может кто-нибудь объяснить мне, в чем проблема?

Ответы [ 3 ]

6 голосов
/ 17 января 2011

Вы используете Type.GetType("MyClass"), где вы должны иметь typeof(MyClass).

2 голосов
/ 17 января 2011

Я подозреваю, что это Type.GetType ("MyClass");

Вы можете вместо этого попробовать typeof (MyClass), передавая тип, а не строку?

1 голос
/ 17 января 2011

Type.GetType() - это метод (т. Е. Не константное выражение), как говорили другие, используйте typeof.

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

Редактировать: Чтобы включить преобразование строки в ваш пользовательский класс, вам нужно связать с ним TypeConverter, см. Раздел примеров этой документации , чтобы получить представление о как это сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...