Есть ли какие-либо другие полезные атрибуты для c# свойств? [дубликат]

Если вам нужно показать детали по каждому клубу в отдельности, вам нужно установить свойство для каждого клуба отдельно, а не по clubs; Также используйте Vue.set для реактивного добавления нового свойства к объекту следующим образом:

const clubs = [
    {
   name: 'Tigers',
   location: 'Manchester',
   members: '22'
    },
    {
   name: 'Dolphins',
   location: 'Miami',
   members: '19'
    },
    {
   name: 'Bleu Sox',
   location: 'Paris',
   members: '13'
    } 
];

const app = new Vue({
  el: '#app',
  data: {
    title: 'Here is a list',
    clubs
  },
  methods: {
    toggleDetails: function(club) {
      this.$set(club, 'showDetails', !club.showDetails)
    }  
  }
});
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.js"></script>

<div id="app">
  
  <ul>
    <li v-for="club in clubs" v-on:click="toggleDetails(club)">
      <h1>{{club.name}}</h1>
      <div v-show="club.showDetails">
          <p>{{club.location}}</p>
          <p>{{club.members}}</p>
      </div>
    </li>
  </ul>
  
</div>

6
задан Community 23 May 2017 в 12:19
поделиться

8 ответов

[Obsolete("This is an obsolete property")]

Это - один из моих фаворитов. Позволяет Вам отмечать устаревшее свойство/метод, который вызовет предупреждение компилятора (дополнительно, ошибка компилятора) на сборке.

7
ответ дан 8 December 2019 в 14:49
поделиться

Только некоторые...

синхронизация, встраивание, и т.д.:

[MethodImpl]

компонентная модель:

[TypeDescriptor], [DisplayName], [Editor]

сериализация:

[Serializable], [DataMember], [XmlElement], [XmlAttribute], [NonSerialized], etc

декларативная безопасность:

[PrincipalPermission]

весь материал COM...

3
ответ дан 8 December 2019 в 14:49
поделиться
[Browsable]

мой фаворит. (MSDN)

2
ответ дан 8 December 2019 в 14:49
поделиться

Я хотел всесторонний список атрибутов c# в течение долгого времени, но никогда не находил список в документах MSDN или нигде. Я думаю, что это - одна из более слабых частей для их документации.

Я использую [XmlIgnore], если я хочу исключить свойство из XML-сериализации.

2
ответ дан 8 December 2019 в 14:49
поделиться
1
ответ дан 8 December 2019 в 14:49
поделиться

Локализуемый, а также ListBindable может быть интересным для пользовательских разработчиков компонента.

0
ответ дан 8 December 2019 в 14:49
поделиться

Если Вы используете Description и Category в многоязычном UIs затем можно найти полезным основанные на ресурсе версии (отраженный от System.Windows.Forms):

[AttributeUsage(AttributeTargets.All)]
internal sealed class SRDescriptionAttribute : DescriptionAttribute
{
    private bool replaced;

    public SRDescriptionAttribute(string description) : base(description)
    {
    }

    public override string Description
    {
        get
        {
            if (!this.replaced)
            {
                this.replaced = true;
                base.DescriptionValue = SR.GetString(base.Description);
            }
            return base.Description;
        }
    }
}

[AttributeUsage(AttributeTargets.All)]
internal sealed class SRCategoryAttribute : CategoryAttribute
{
    public SRCategoryAttribute(string category) : base(category)
    {
    }

    protected override string GetLocalizedString(string value)
    {
        return SR.GetString(value);
    }
}

где SR обертка к соответствующему ResourceManager.

1
ответ дан 8 December 2019 в 14:49
поделиться

Я использую его довольно часто на перечислениях. Когда-нибудь имеет то или "неизвестное" значение "по умолчанию" в перечислении, но Вы не обязательно хотите связанный с управлением, как выпадающее? Добавьте пользовательский атрибут или используйте существующий, для представления объектов, которые не должны быть видимыми.

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

Существует несколько довольно новых инструментов как PostSharp (http://www.postsharp.org/), можно использовать для инкапсуляции поведения в атрибутах. Свяжите хорошие примеры на том сайте; удивительно, насколько более простой можно сделать код через те шаблоны...

0
ответ дан 8 December 2019 в 14:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: