c# 修改 getter/setter 但保留简短形式

标签 c# setter getter

我需要在 C# setter 中做一个小检查——检查属性是否为空字符串。现在我最终得到了这样的结构:

        private string property;
        public string Property
        {
           get
           {
              return property;
           }
           set
           {
              if (value.IsNotEmpty())
              {
                   property = value;
              }
           }
        }

代替

public string Property { get; set; }

6 行而不是 1 行。有没有办法插入逻辑,但保持简洁和优雅?

最佳答案

自动属性(或“短格式”)可以有访问修饰符,但没有逻辑。你被现有的代码困住了。

可以做的一件事是将您的字符串封装在一个对象中,该对象允许从字符串(和到字符串)进行隐式转换,并检查IsNotEmpty 在分配给基础值之前。也不是最优雅的解决方案,但它可能会让您保留语法糖。

关于c# 修改 getter/setter 但保留简短形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26539485/

相关文章:

c# - 返回导致错误的通用 IList

c# - SQL 连接问题

c# - 以表单形式处置非托管资源

c++ - Getter 和 setter、指针或引用,以及在 C++ 中使用的良好语法?

python - 如何迭代由 getter 或 @property 定义的对象的属性?

java - Java 中的 Getter 错误

c# - 如何使用 SQL 参数从 SQL Server 获取数据集

具有动态字段的Scala案例类复制构造函数

java - 当子类在本地重写其中一些方法时,如何强制子类使用父方法?

Java 不断跳过我的扫描仪对象