【问题标题】:Only allow incrementation and decrementation for properties [closed]只允许属性的递增和递减[关闭]
【发布时间】:2014-03-20 00:55:49
【问题描述】:

我看到某些 .NET 属性只允许通过 += 和 -= 运算符从列表中添加和删除元素。如何创建具有该功能的类的属性?

【问题讨论】:

  • 该属性是委托还是事件?
  • 你在谈论事件吗?
  • 我不确定,很可能。
  • 请不要。这对代表来说是惯用的,但实际上没有别的。

标签: c# properties


【解决方案1】:

您可以通过以下方式达到类似的效果:

    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");
        }
    }

【讨论】:

    【解决方案2】:

    如果您在谈论属性,则没有办法如何通过以下方式确定属性的“语法使用”:

    • 启用i += 1;
    • 禁用i = i + 1;

    您可能将它与使用语法 += 进行某些操作的“委托和事件”不匹配。有关代表和事件的更多信息,例如,您应该查看http://msdn.microsoft.com/en-us/library/aa645739(v=vs.71).aspx

    编辑:我能想到的最后一种选择是运算符重载,但我没有经验来参考这种具体情况,所以有更多信息的链接C# operator overload for `+=`? 但我不认为这正是你寻找,因为它不会限制属性的语法使用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-01
      • 2015-06-12
      • 2012-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多