【问题标题】:Trim auto-implemented property when assigning [duplicate]分配时修剪自动实现的属性[重复]
【发布时间】:2023-03-28 12:50:01
【问题描述】:

我遇到了一个问题。我定义了一个自动实现的字符串属性。从外部来源检索数据并分配给属性。一些数据有尾随空格。分配给属性时是否有可能修剪空格?

public string Name { get; set; }

从其他来源检索到的数据

Name = service.GetName();   // e.g. "John David   "

该属性将在多个地方使用。我不想在每个地方修剪字符串,而是在将其分配给属性时对其进行修剪。有可能吗?

预期结果

Response.Write(Name) // Output:  "John David"    not  "John David   "

【问题讨论】:

  • 不要使用自动实现的属性。放入一个私有的支持字段,并以老式的方式实现一个 getter 和一个 setter。在setter中调用Trim
  • 如果您使用 PostSharp、Fody 等 AOP 工具,您可以通过编译器将行为注入代码生成器。否则,不...该语言不提供任何直接支持。查看副本。

标签: c# getter-setter


【解决方案1】:

在你的 setter 中修剪你的字符串。这将修剪前导和尾随空格:

    public string Name { 
       get { return Name; } 
       set { Name = value.Trim(); }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-28
    • 2012-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-16
    相关资源
    最近更新 更多