c# - 在 C# 中,我可以让自动属性在属性的帮助下执行一些额外的工作吗?

标签 c# custom-attributes automatic-properties

这个问题与此相关但不相同:How do you give a C# Auto-Property a default value?

我喜欢自动属性,但有时我不得不这样做:

private string someName;

public string SomeName
{
    get
    {
       return someName;
    }

    set
    {
        someName = value.Trim();
    }
}

如果我必须多次做同样的事情,我开始希望我不需要输入那么多行/字符的代码。我希望能够拦截值并像这样更改它:

public string Somename
{
    get;

    [Trim]
    set;
}

有没有办法做这样的事情?会不会很傻?有没有更好的办法?还有其他一般性意见吗?我承认,我给出的例子有点假设,我现在找不到让我想到这个的确切代码。

谢谢。

最佳答案

您可以使用 AOP 来完成,例如 Postsharp ,但在这种情况下,您为什么不只使用后备存储呢?

此外,为了完整起见,您可能应该这样做:

someName = (value ?? string.Empty).Trim();

也处理null

请注意,如果您有一个涉及更多工作的特定案例,您可能应该询问该案例,而不是您问题中的微不足道的案例

关于c# - 在 C# 中,我可以让自动属性在属性的帮助下执行一些额外的工作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2970248/

相关文章:

c# - 数据库关闭后让 log4net 重新连接数据库

c# - 找到与请求 Web API 匹配的多个操作?

asp.net-mvc - 处理未授权使用自定义属性

c# - 获取要在自定义属性中使用的属性值

c# - 使用属性生成自定义 setter

c# - 从函数返回事件

c# - 在 ASP.NET Core 中使用 ConfigureAppConfiguration 方法进行日志记录

c# - 有没有办法让 C# 自定义属性在编译时引发消息?

c# - C# 中的自动属性不会导致开销吗?

c# - 规范中是否实现了自动属性?