VS2008的自动属性支持默认值吗?

[DefaultValue(true)]
public bool EnableShow { get; set; }

因为bool默认为false,但我希望默认为true。用了上面的方式,但好像没效果。所以请问vs2008的自动属性支持默认值吗?

倚天杖
浏览 724回答 2
2回答

DIEA

的确存在楼主所说的现象,可以通过以下代码示例说明问题。 [object Object]代码示例 using System; using System.ComponentModel; namespace Lucifer.CSharp.Sample {     class Program     {         static void Main()         {             TestClass test = new TestClass();             AttributeCollection attributes =                 TypeDescriptor.                 GetProperties(test)["EnableShow"].                 Attributes;             DefaultValueAttribute attribute =                 (DefaultValueAttribute)attributes                 [typeof(DefaultValueAttribute)];             Console.WriteLine(                 "The default value is: " +                  attribute.Value.ToString());             Console.WriteLine(                 "The default value is: " +                  test.EnableShow.ToString());         }     }     class TestClass     {         [DefaultValue(true)]         public bool EnableShow { get; set; }     } } 俺以为 DefaultValueAttribute 是用来给代码生成器使用的。比如 Microsoft 的 VS 可视化设计器利用这个来重置成员值。如果想要达到楼主的目的,自动属性这个语法糖无法实现。

慕村9548890

自动属性不支持default value和readonly,对于default value可以在构造函数中给他赋个值
打开App,查看更多内容
随时随地看视频慕课网APP