8. Automatic Properties(自动属性)
在之前的一些示例代码中我们看到了,过去我们书写C#类的属性时都是采用如下的方式:
1: private string _name = String.Empty;
2: public string Name
3: {
4: get { return this._name; }
5: set { this._name = value; } // Optional.
6: }
C#的属性从一开始就是这样的基本形式,尽管Visual Studio提供了代码自动生成功能可以减轻我们编写这些简单重复的代码的痛苦,但这样的形式的确增大了代码量,有没有什么更方便的形式呢?
C# 3.0给我们带来了自动属性的概念,其代码更显简洁,而简洁不正是C#一贯追求的风格之一么,那么我们来看看自动属性是什么样子的吧:
1: public string Name { get; set; }
上面这行简短的代码和我们最初给出的属性形式是等效的,对于其自身不存在逻辑的属性都可以这样来编写,当然也可以继续采用原先的方式,其实C# Compiler在预编译时会将自动属性还原为原先的属性形式,只是这部分工作由编译器来完成,从而减轻了程序员的工作量。在一些情况下,例如你想让这个属性成为只读或者对其写操作进行一些控制,那么你可以在set关键字前面加上访问修饰符,例如:
1: public string Name { get; private set; }
这个属性就是只读的了,是不是很方便呢?那么C# 3.0到底能为我们带来多少令人激动的开发体验呢,这就得靠大家的力量来一起发掘了!
转载请注明出处。版权所有©2022 麦机长,保留所有权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述