自动属性:在"设置"期间检查/验证

Pre*_*zel 3 setter automatic-properties c#-3.0

我想我们都同意C#3.0中的自动属性很棒.像这样的东西:

private string name;
public string Name
{
    get { return name; }
    set { name = value; }
}
Run Code Online (Sandbox Code Playgroud)

减少到这个:

public string Name { get; set; }
Run Code Online (Sandbox Code Playgroud)

可爱!

但是,如果我想在"设置"时使用ToUpperInvariant()方法转换Name字符串,我应该怎么做.我是否需要恢复旧的C#2.0创建属性的风格?

    private string name;
    public string Name
    {
        get { return name; }
        set { name = value.ToUpperInvariant(); }
    }
Run Code Online (Sandbox Code Playgroud)

或者有更优雅的方式来实现这一目标吗?

tan*_*ius 5

是的,你必须将其转换回来.autoproperty无法进行此类检查.