【问题标题】:How to set a default value using "short style" properties in VS2008 (Automatic Properties)?如何使用 VS2008(自动属性)中的“短样式”属性设置默认值?
【发布时间】:2008-10-15 21:39:15
【问题描述】:

如何为定义如下的属性设置默认值:

public int MyProperty { get; set; }

即在VS2008中使用“prop”[tab][tab](代码sn-p)。

是否有可能不退回“旧方式”?:

private int myProperty = 0; // default value
public int MyProperty
{
    get { return myProperty; }
    set { myProperty = value; }
}

感谢您的宝贵时间。 最好的问候。

【问题讨论】:

  • 附带说明,您不需要将属性设置为其正常的默认值(如 int i = 0)。当类被实例化时,这会自动发生。
  • 好吧,我选择 int 是因为这是我想到的第一件事……但我想为任何类(字符串、自定义类等)的属性设置一个默认值

标签: c# .net visual-studio-2008 properties


【解决方案1】:

只需在构造函数中设置“默认”值即可。

public class Person
{
   public Person()
   {
       this.FirstName = string.Empty;
   }

   public string FirstName { get; set; }
}

此外,它们被称为自动属性。

【讨论】:

  • FWIW,如果您碰巧更改了任何构造函数中的值,则设置默认值效率低下。在我工作的公司,我们实际上认为拥有默认值是一种“代码味道”,因为我们必须去看看它是否在任何构造函数中被覆盖。
【解决方案2】:

我的偏好是“以旧方式”做事,而不是在构造函数中初始化。如果您稍后添加另一个构造函数,则必须确保从中调用第一个构造函数,否则您的属性将未初始化。

【讨论】:

  • 当然,但是从所有其他构造函数中调用其中一个构造函数通常是无论如何你应该做的。这是一个非常标准的模式:参数较少的构造函数将默认值传递给参数最多的构造函数。
【解决方案3】:

即使这是一个较旧的线程,我还是想添加一些在 C# 中实现的新方法 > Vers. 6:

https://msdn.microsoft.com/de-de/library/bb384054.aspx

public int MyInt { get; set; } = 0;
public string MyString { get; set; } = "Lorem Ipsum";

【讨论】:

    【解决方案4】:

    [默认值(“我的名字”)] 公共字符串名字 { 获取;放; }

    【讨论】:

      猜你喜欢
      • 2011-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-28
      • 2012-01-08
      相关资源
      最近更新 更多