编程之路转自:cjavapy.com/article/55/

_  .NET(C#)中,自动属性(Auto-Implemented Properties)提供了一种简洁的方式来实现属性而无需显式定义字段。但直到C# 6.0版本之前,不能在自动属性的声明中直接为其指定默认值。从C# 6.0开始,可以在自动属性声明中直接初始化默认值。_

1、在构造函数中设置默认值

在C#的早期版本中,或者当需要更复杂的初始化逻辑时,可以在类的构造函数中设置自动属性的默认值。如自动属性是静态的(即属于类本身而不是类的实例),则可以在静态构造函数中设置其默认值。1)在构造函数中设置默认值

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace ConsoleApplication
{
class Person
{
public Person()
{
Name = "Default Name";
}
public string Name { get; set; }
}
class Program
{
static void Main(string[] args)
{
Person p = new Person();
Console.WriteLine(p.Name);
Console.ReadKey();
}
}
}

2)使用一般写法设置默认值

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace ConsoleApplication
{
class Person
{
private string name = "Default Name";
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
} public class MyClass
{
public static int MyStaticProperty { get; set; } static MyClass()
{
MyStaticProperty = 10; // 在静态构造函数中设置默认值
}
}
class Program
{
static void Main(string[] args)
{
Person p = new Person();
Console.WriteLine(p.Name);
Console.WriteLine(MyClass.MyStaticProperty);
}
}
}

2、 直接在自动属性中初始化(C# 6.0及以后)

从C# 6.0开始,可以在自动属性的声明中直接指定默认值。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace ConsoleApplication
{
class Person
{
public string Name { get; set; } = "Default Name"; } class Program
{
static void Main(string[] args)
{
Person p = new Person();
Console.WriteLine(p.Name);
}
}
}

3、使用属性初始化器(C# 9.0及以后)

从C# 9.0开始,可以使用属性初始化器(Property Initializers)在创建对象时直接初始化属性。



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace ConsoleApplication
{
class Person
{
public string Name { get; set; } = "Default Name"; } class Program
{
static void Main(string[] args)
{
Person p = new Person() { Name = "cjavapy.com" };
Console.WriteLine(p.Name);
}
}
}

C#自动属性提供默认值的方法的更多相关文章

  1. 【C#】妈妈再也不用担心自定义控件如何给特殊类型的属性添加默认值了,附自定义GroupBox一枚

    ------------------更新:201411190903------------------ 经过思考和实践,发现套路中的第1条是不必要的,就是完全可以不用定义一个名为Default+属性名 ...

  2. Newtonsoft.Json高级用法 1.忽略某些属性 2.默认值的处理 3.空值的处理 4.支持非公共成员 5.日期处理 6.自定义序列化的字段名称

    手机端应用讲究速度快,体验好.刚好手头上的一个项目服务端接口有性能问题,需要进行优化.在接口多次修改中,实体添加了很多字段用于中间计算或者存储,然后最终用Newtonsoft.Json进行序列化返回数 ...

  3. 自定义控件如何给特殊类型的属性添加默认值 z

    定义控件如何给特殊类型的属性添加默认值了,附自定义GroupBox一枚 标题有点那啥,但确实能表达我掌握此法后的心情. 写自定义控件时往往会有一个需求,就是给属性指定一个默认值(就是可以在VS中右键该 ...

  4. 自定义控件如何给特殊类型的属性添加默认值 z(转)

    自定义控件如何给特殊类型的属性添加默认值 z 定义控件如何给特殊类型的属性添加默认值了,附自定义GroupBox一枚 标题有点那啥,但确实能表达我掌握此法后的心情. 写自定义控件时往往会有一个需求,就 ...

  5. MySQL设置当前时间为默认值的方法

    方法一.是用alert table语句: 复制代码代码如下: use test_db1; create table test_ta1( id mediumint(8) unsigned not nul ...

  6. swift学习笔记(六)析关闭过程和使用分配给属性的默认值

    一.通过关闭和功能的默认实现财产值 当存储属性默认值需要定制,能为客户提供通过关闭或全局函数的自定义默认值. 注意:全局函数的结构,和枚举使用keywordstatic大喊    用classkeyw ...

  7. 如何为一个类型为Color的属性设置默认值

    最近在研究GDI+的时候,用winform来写自定义控件遇到需要为控件的属性设置默认值,但这个属性的类型是System.Drawing.Color.本文只是总结一下各种设置的方法. Example [ ...

  8. php函数指定默认值的方法

    发布:JB02   来源:脚本学堂     [大 中 小] 本文介绍下,在php编程中,指定函数的默认值的方法,分享二个例子,供大家学习参考下.本文转自:http://www.jbxue.com/ar ...

  9. python属性的默认值

    python类的构造函数中属性可以设置默认值,实例化出来的对象如果属性使用默认值,默认值的地址是相同的. class A: def __init__(self, name = []): self.__ ...

  10. ASP.NET文本框密码赋默认值的方法

    对于普通的文本输入框,可以使用下边的方法赋默认值: <asp:TextBox ID="TextBox1" runat="server">12345& ...

随机推荐

  1. Q:ORACLE 之无法删除正在连接的用户?

    首先用户名必须用单引号引起来且必须大写,如下是失效的 1.查询用户进程 SELECT SID,SERIAL# FROM V$SESSION WHERE USERNAME='V7HIS_1'; 2.删除 ...

  2. nacos(四): 创建第一个消费者Conumer(单体)

    接上一篇<nacos(三): 创建第一个生产者producer(单体)>,我们这一篇实现单体的消费者功能,准备与上一次的生产者集成在一个单体项目中. 消费者的本质其实就是向nacos注册后 ...

  3. [SDOI2008] Sandy的卡片 题解

    讲一种自认为最暴力的方法. 首先肯定还是用差分的思想,对于每一张卡片进行重新标号,在卡片串与卡片串中插入特殊字符,然后找重复了 \(n\) 次的子串. 这里我们对于每一个子串开一个大小为 \(n\) ...

  4. docker - [05] 部署Nginx

    题记部分 一.查找镜像 docker search nginx 二.拉取镜像 docker pull nginx 三.启动镜像 Nginx默认端口号为80,可以在启动时指定Nginx使用的端口号(例如 ...

  5. Ansible - [07] 定义变量的几种方式

    题记部分 Ansible 支持十几种定义变量的方式 Inventory 变量 Host Facts 变量 Register 变量 Playbook 变量 Playbook 提示变量 变量文件 命令行变 ...

  6. Linux 环境变量指北

    Linux 环境变量指北 一.终端:Login Shell 二.Systemd 的配置方式 三.图形界面 DM(Display Manager) 显示管理器 DE(Desktop Environmen ...

  7. C#/.NET/.NET Core技术前沿周刊 | 第 27 期(2025年2.17-2.23)

    前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...

  8. pandas 如何移动列的位置

    实现效果 原来备注列在第二列 代码: mid=df['备注'] #取备注列的值 df.pop('备注') #删除备注列 df.insert(4,'备注',mid) #插入备注列

  9. 22. Generate Parentheses--求n对括号组成可以组成的全部有效括号序列

    描述: Given n pairs of parentheses, write a function to generate all combinations of well-formed paren ...

  10. oracle 添加白名单- 重启监听

    由于oracle中存在白名单,有新增主机需要访问,添加白名单需要重启监听 1.添加白名单 登陆oracle主机,su - grid 切到grid用户, vi $ORACLE_HOME/network/ ...