为 C# 自动属性提供初始值的最佳方法是什么?


v-star*위위
2025-03-15 04:29:19 (27天前)

如何为 C# 自动属性提供初始值?

我要么使用构造函数,要么还原到旧语法。

使用构造函数:


  1. class Person
    {
    public Person()
    {
    Name = Initial Name”;
    }
    public string Name { get; set; }
    }

使用正常属性语法(具有初始值)


  1. private string name = Initial Name”;
    public string Name
    {
    get
    {
    return name;
    }
    set
    {
    name = value;
    }
    }

还有更好的方法吗?

2 条回复
  1. 1# v-star*위위 | 2020-07-27 16-37

    在 C# 5 和更早版本中,若要为自动实现的属性提供初始值,您必须在构造函数中执行。

    自 C# 6.0 以来,您可以在线指定初始值。语法为:

    public int X { get; set; } = x; // C# 6 or higher
    默认值属性供VS 设计器(或任何其他使用者)用于指定默认值,而不是初始值。(即使在设计的对象中,初始值也是默认值)。

    在编译时不会影响生成的 IL,并且不会读取该属性以初始化为该值(请参阅DefaultValue 属性不与我的 Auto 属性一起使用)。DefaultValueAttribute

    影响 IL 的属性示例是线程静态属性、调用方成员属性、…

登录 后才能参与评论