有没有办法改变 set 的行为以在 C# 中自动修剪字符串属性?

分享于2022年07月17日 .net c# 问答
【问题标题】:有没有办法改变 set 的行为以在 C# 中自动修剪字符串属性?(Is there a way to change the behavior of set to automatically trim the string properties on assignment in C#?)
【发布时间】:2022-07-11 22:08:11
【问题描述】:

我正在寻找一种在赋值时自动修剪字符串属性值的方法。我知道我可以使用这样的东西:

private string _firstName;
public string firstName 
{ 
    get { return _firstName; } 
    set { _firstName = value.Trim(); }
}

但是我有这么多具有​​这么多字符串属性的类,这样做似乎不太可行。我想知道是否有办法改变设置器的行为以始终将其设置为 string.trim()。

  • 我怀疑这是可能的
  • “这样做似乎不太可行” - 以什么方式? (除非您开始研究源代码生成器,否则无法以更全球化的方式做到这一点。无论如何,我个人都会对普遍这样做持谨慎态度......)
  • 我会从相反的方向解决这个问题 - 为什么您的代码库中经常出现带有多余前导/尾随空格的字符串?难道你不能解决这个问题吗?

【解决方案1】:

我必须同意其他人的观点,他们是正确的。你所拥有的是一个非常好的解决方案。如果您在多个类上需要这个,也许如果您真的想创建一个基类来对名字进行修剪,然后从这个基础上扩展其他类。但是我会说这太过分了,您可能只需要重写某些部分即可使用这种新的修剪方法。

我希望这会有所帮助,即使这不是您想听到的。