【问题标题】:Insert not inserting in property [duplicate]插入不插入属性[重复]
【发布时间】:2017-06-29 15:33:54
【问题描述】:

插入不添加到属性中的变量

private string _DirectoryList = "";
public string DirectoryListAdd
        {
            get { return _DirectoryList; }
            set
            {
                    _DirectoryList.Insert(0, value + Environment.NewLine);
                    OnPropertyChanged("DirectoryListAdd");
            }
        }

public MainWindow()
        {
            InitializeComponent();
            DirectoryListAdd = "a";
            DirectoryListAdd = "b";
            Console.WriteLine(DirectoryListAdd);
        }

这是返回“”。我希望它会回来

a
b

【问题讨论】:

  • 不要那样使用属性。分配应该意味着分配。此外,String 是不可变的。 String.Insert() 返回一个您要丢弃的新字符串。我很难想象是什么阻止了您阅读有关您正在调用的方法的文档。
  • 虽然第一条评论的最后一部分可能有不同的措辞,但对于用户只需在不起作用的方法名称上按 F1 即可轻松解决的问题确实会带来一些挫败感“他们期望如何”,因为对功能的期望应该至少部分基于文档。

标签: c# string properties insert


【解决方案1】:

https://msdn.microsoft.com/en-us/library/system.string.insert(v=vs.110).aspx

返回一个新字符串,其中指定字符串插入到此实例中的指定索引位置。

_DirectoryList = _DirectoryList.Insert(0, value + Environment.NewLine);

+1 表示“不要以这种方式使用属性”

【讨论】:

    【解决方案2】:
      private string _DirectoryList = "";
      public string DirectoryListAdd
        {
            get { return _DirectoryList; }
            set
            {
                    _DirectoryList=_DirectoryList.Insert(0, value + Environment.NewLine);
                    OnPropertyChanged("DirectoryListAdd");
            }
        }
    
      public MainWindow()
        {
            InitializeComponent();
            DirectoryListAdd = "a";
            DirectoryListAdd = "b";
            Console.WriteLine(DirectoryListAdd);
        }
    

    注意_DirectoryList=_DirectoryList.Insert(0, value + Environment.NewLine);

    此方法会在字符串的开头插入,而不是像您希望的那样在结尾处插入。所以记住这一点。替换 0 _DirectoryList.Length-1

    也正如其他 cmets 所说,不要以这种方式使用属性。这比它的价值更令人困惑

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多