c# 3.0 get set 默认值
之前曾经介绍过 C# 3.0 { get; set; } 默认值,本文是在其基础上完成的,增加了些内容。
.NET Framework 3.5 使用的是 C# 3.0,C# 3.0 有一些新的语言特性,其中有一项就是快捷属性。
之前的写法:
private int _id = 0;
public int Id
{
get
{
return _id;
}
set
{
_id = value;
}
}
public int Id
{
get
{
return _id;
}
set
{
_id = value;
}
}
在 C# 3.0 中可以简写为这样:
public int Id { get; set; }
C# 3.0 { get; set; } 默认值
这就不得不说 { get; set; } 的默认值了,因为不存在了私有自段,我们无法人工指定默认值了,那么系统的默认值是什么呢?
- 对于 int 类型,默认值是 0;
- 对于 int? 类型,默认值是 null;
- 对于 bool 类型,默认值是 false;
- 对于 bool? 类型,默认值是 null;
- 对于 string 类型,默认值是 null;
- 对于 string? 类型,哈哈,没有这种写法,会出错;
- 对于 DateTime 类型,默认值是 0001-01-01 00:00:00;
- 对于 DateTime? 类型,默认值是 null;
- 对于 enum 类型,默认值是值为 0 的项,如果不存在 0 的 enum 项,它仍然是 0,相关内容可参见:C# 枚举(enum);
- 对于 enum? 类型,默认值是 null;
- 对于 class 类型,默认值是未实例化的对象引用;
- 对于 class? 类型,哈哈,没有这种写法,会出错。
关于类型加 ?,表示这种类型的值可为 null,比如 int 本来没有 null 值,加上 int? 就可以为 null 了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架