c# - C# 属性,这是一个不好的做法吗?
问题描述
一般来说,我是 C# 和 OOP 的新手。我刚刚了解了 c# 中的属性——它有一个 get 和 set 方法。
从另一个属性的集合中更新一个属性是不好的做法,如下面的代码示例所示?
private int _prop1;
public int Prop1
{
get { return _prop1; }
set { _prop1 = value; OnPropertyChanged("Prop1"); Prop2 = value; }
}
private int _prop2;
public int Prop2
{
get { return _prop2; }
set { _prop2 = value; }
}
解决方案
如果两个属性都是读写的,我会说这是不好的做法,因为它可能会造成混乱。如果受影响的属性是只读的,那也没关系。这是一个好的例子:
public int LivesRemaining {get; set;}
public bool IsDead {get => LivesRemaining == 0}
设置LivesRemaining = 0
将导致IsDead
属性变为true
。但这并不令人惊讶或令人困惑。
推荐阅读
- python-3.x - 设置变量时的Python语法错误
- c# - 如何创建一个统一用作按钮的模型?
- ios - How to set UIProgressView progress properly?
- mysql - SUM values or take MAX to SUM depending on value
- php - PHP 从组合列表中创建一个变体表
- html - Bootstrap 旋转木马垂直制作
- android - Android 中的 Google Pay API 集成
- javascript - 正则表达式捕获除数字和单词列表之外的所有字符
- sql-server - 通过 Liquibase 创建 mssql 作业
- c# - EF Core 动态 Where 表达式生成器