[英]Customize setter property C# 10
我正在使用 C# 10 并希望将绑定到Operator
的任何值转换为小写
public class Rule
{
public string Operator { get; set; }
}
我不能创建另一个属性并设置值。
private string _Operator ;
public string Operator
{
get
{
return _Operator ;
}
set
{
_Operator = value.toLower();
}
}
有什么方法可以直接转换为小写任何绑定到public string Operator { get; set; }
public string Operator { get; set; }
public string Operator { get; set; }
public string BetterOperator => Operator?.ToLower();
如果您有一个无法完全控制的原始类(例如自动生成),我会尝试使用部分类:
public partial class Rule
{
public string Operator { get; set; }
}
public partial class Rule
{
public string BetterOperator => Operator?.ToLower();
}
另一种选择可能是使属性虚拟并使用派生类:
(我从类切换到记录只是为了一个不错的 Console.WriteLine )
public record Rule
{
public virtual string? Operator { get; set; }
}
public record RuleExt : Rule
{
public override string? Operator
{
get { return base.Operator; }
set { base.Operator = value?.ToLower(); }
}
}
然后是以下内容:
var r = new RuleExt() { Operator = "Plus" };
Print(r);
static void Print(Rule r) => Console.WriteLine(r);
将打印:
RuleExt { Operator = plus }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.