C# 6.0 自动属性初始化语法详解:实现默认值赋值

落日邮差
落日邮差
发布时间:2026-10-13| 4人浏览过
原创

C# 6.0 引入了自动属性初始化功能,允许开发者在定义 get/set 访问器的同时直接指定默认值。这种方式无需编写额外构造函数即可为属性赋初值,显著提升了代码的可读性与简洁性。

背景与数据库模型

在处理数据实体时,确保每个对象拥有合理的初始状态是预防运行错误的常见需求。假设我们有一个名为 ToolLocation 的数据表,其结构定义如下:

CREATE TABLE [dbo].[ToolLocation]
(
 [ToolLocation_nbr] SMALLINT IDENTITY(1,1) NOT NULL PRIMARY KEY,
 [LocationName] NVARCHAR(20) NOT NULL,
 [Description] NVARCHAR(50) NULL,
 [IsActive] BIT NOT NULL DEFAULT(1)
)

使用 C# 6.0 语法定义实体类

在之前的 C# 版本中,若希望属性有默认值,通常需要编写无参构造函数或依赖字段初始化。而在 C# 6.0 中,可以直接在属性声明语句末尾使用 = 赋值操作符。这种对比体现了语法的演进:

以下是具体的实体类代码实现。注意观察每个属性如何在其声明行直接进行初始化:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Insus.NET.Models
{
 public class ToolLocation
 {
  // 默认值为 1
  public short ToolLocation_nbr { get; set; } = 1;

  // 字符串默认为空
  public string LocationName { get; set; } = string.Empty;

  public string Description { get; set; } = string.Empty;

  // 布尔值默认为 true
  public bool IsActive { get; set; } = true;
 }
}

验证实体对象的实例化结果

为了直观看到默认值生效的效果,可以创建一个简单的实体工厂方法,通过不同方式实例化对象并输出查看:

using Insus.NET.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Insus.NET.Entities
{
 public class ToolLocationEntity
 {
  public IEnumerable<ToolLocation> ToolLocations()
  {
   return new List<ToolLocation>() {
    // 对象 1:仅使用默认值初始化,未手动指定任何属性
    new ToolLocation(),
    
    // 对象 2:部分属性手动赋值
    new ToolLocation { ToolLocation_nbr = 2, LocationName = "A2", Description = "A2 CNC",IsActive = true},
    
    // 对象 3:包含非默认值的例子
    new ToolLocation { ToolLocation_nbr = 3, LocationName = "C4", Description = "C4 CNC",IsActive = false}
   };
  }
 }
}

在 ASP.NET MVC 中的应用

在控制器层获取这些对象集合后,将其传递给视图进行渲染。以下是控制器处理数据的示意位置:

随后在 ASP.NET MVC 视图中遍历并显示这些数据。界面将呈现出三个对象的状态,特别是第一个对象,它完美展示了所有属性均采用了预定义的默认值: 最终的运行效果如下图所示,各个字段的初始内容完全符合预期: 以上就是关于 C# 6.0 自动属性设置默认值的详细内容,更多关于 C# 高级特性的资料请关注本站其它相关文章!
相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。