2014-02-19 2 views
2

Я видел, что определенные свойства .NET позволяют добавлять и удалять элементы из списка через операторы + = и - =. Как создать свойство класса с этой функциональностью?Разрешить только инкремент и декремент для свойств

+0

Было ли это свойство, возможно, делегатом или событием? –

+0

Вы говорите о событиях? – Alberto

+1

Я не уверен, вполне возможно. – Garan

ответ

1

Если говорить о свойствах, не никакого способа, как определить «использовать синтаксис» свои свойства в следующих способах:

  • Включить i += 1;
  • Отключить i = i + 1;

Возможно, вы не согласны с «делегатом и событиями», который использует синтаксис + = для некоторых операций. Для получения дополнительной информации о делегатах и ​​событиях, вы должны посмотреть, например, http://msdn.microsoft.com/en-us/library/aa645739(v=vs.71).aspx.

EDIT: Последняя альтернатива, о которой я мог думать, это перегрузка оператора, но у меня нет опыта, чтобы рассказать об этой конкретной ситуации, поэтому есть ссылка с дополнительной информацией C# operator overload for `+=`?, но я не думаю, что это именно то, что вы ищете потому что он не будет ограничивать использование синтаксиса ваших свойств.

0

Вы можете достичь похожего эффекта, выполнив:

public class Test 
    { 
     private List<string> _myList; 

     public Test() 
     { 
      _myList = new List<string>(); 
     } 

     public List<string> MyList 
     { 
      get { return _myList; } 
     } 

     public void ManipulateList() 
     { 
      _myList.Add("string 1"); 
      _myList.Add("string 2"); 
     } 
    } 
Смежные вопросы