1
|
Sören Kuklau Keith Boynton · 技术社区 · 14 年前 |
1
1
属性在C#中不能有参数,因此如果要使用属性语法,则需要两个名称不同的属性。
如果您不希望类的用户知道字段内部可能为空,那么如果您控制属性的实现,这非常简单。将属性的backing字段定义为
现在,在内部,您可以随时访问
但是,当您说“我想添加一个选项,使版本为空。”,如果您
想让你的客户知道
但是,单个属性有时无法返回
另一种选择是使用方法访问值,如下所示:
实际上,您正在做大量工作,使您的客户机能够轻松地处理空检查,而不隐藏值可以为空的事实。有什么好处? |
2
3
听起来你是在试图过度设计你的课程。属性是空的,或者不是空的,客户机不必检查空值。我会发现理解您的API是一个负担,对我来说,这听起来像是:“这个属性永远不为空。”。除非你检查它是否真的是空的?
|
Pikachu620 · 在Visual C中运行时编译# 6 年前 |
N6151H · 使用annotate()包括django模型对象属性 6 年前 |
Rekshino · 在编译时获取类的属性名,而不进行对象实例化 6 年前 |
Mahhdy · VBA类模块:从类内的对象获取属性 6 年前 |
user5441558 · c中get前缀背后的原因# 6 年前 |
user9409572 · 无法更改属性的值 6 年前 |