Что означает квадратная скобка [] в приведенном ниже коде? - PullRequest
22 голосов
/ 10 марта 2010

Я получил ниже код от http://msdn.microsoft.com/en-us/library/dd584174(office.11).aspx для добавления пользовательского свойства в панель инструментов веб-части. Что означает квадратная скобка ([]) в приведенном ниже коде?

[Category("Custom Properties")]
        [WebPartStorage(Storage.Personal)]
        [FriendlyNameAttribute("Custom Color")]
        [Description("Select a color from the dropdown list.")]
        [Browsable(true)]
        [XmlElement(typeof(System.Drawing.KnownColor))]
        public System.Drawing.KnownColor MyColor
        {
            get
            {
                return _myColor;
            }
            set
            {
                _myColor = value;
            }
        }

Ответы [ 2 ]

15 голосов
/ 10 марта 2010

Как сказал @Spencer Ruport, это атрибуты. Они используются в .NET для декларативного программирования .

Вы можете найти информацию о каждом из этих атрибутов на MSDN. Однако вы должны знать, что имя атрибута может быть сокращено. Например, в вашем случае Category - это краткая форма имени класса CategoryAttribute, а XmlElement - это краткая форма имени класса XmlElementAttribute. При объявлении атрибутов часть Attribute имени класса может быть пропущена.

Я использовал большинство этих атрибутов в сочетании с элементом управления PropertyGrid (см. здесь для примера), хотя в вашем случае они используются для панели свойств веб-части. Цель все та же. Атрибуты используются элементом управления, чтобы знать, как отобразить свойство для пользователя. Используя комбинацию различных атрибутов, которые понимает элемент управления, можно декларативно определять это поведение.

Надеюсь, это немного поможет, но Спенсер прав, вы узнаете намного больше о атрибутах через Google, чем я могу объяснить здесь.

15 голосов
/ 10 марта 2010

Они называются атрибутами.

Вот краткий пример того, как их можно использовать: http://www.codeproject.com/KB/cs/attributes.aspx

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