eba*_*lga 2 c# attributes custom-attributes
我需要这样的
public class AA{
public AA(){}
[Default("hi")]
public string value1{get;set}
[Default(12)]
public int value2{get;set;}
}
Run Code Online (Sandbox Code Playgroud)
用法:
AA a=new AA();
print(a.value1); //result: hi
print(a.value2); //result: 12
Run Code Online (Sandbox Code Playgroud)
是否有可能像这样创造?
我知道另一种方式
Public class AA{
public AA(){value1="hi";value2=12}
...
}
Run Code Online (Sandbox Code Playgroud)
除此以外
AA a=new AA(){value1="hi",value2=12};
Run Code Online (Sandbox Code Playgroud)
但我只需要属性.
不,但您可以在无参数构造函数中轻松初始化它们.
public class AA
{
public AA()
{
// default values
Value1 = "hi";
Value2 = 12;
}
public string Value1 {get;set}
public int Value2 {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
或者,不使用自动实现的属性,而是使用实际属性,并将支持字段初始化为默认值.
public class AA
{
private string _value1 = "hi";
public string Value1
{ get { return _value1; } }
{ set { _value1 = value; } }
private int _vaule2 = 12;
public int Value2
{ get { return _value2; } }
{ set { _value2 = value; } }
}
Run Code Online (Sandbox Code Playgroud)
使用Visual Studio片段创建具有实际支持字段的属性不是一个大问题.通过键入propVS并Tab按下键,您可以获得读/写属性的完整代码段.
[编辑]也检查这个帖子:你如何给C#Auto-Property一个默认值?
[又一个编辑]如果您认为这会使其更具可读性,请检查以下链接:它是一个get/set片段,它将生成具有必要支持字段的属性,并自动在其#region周围添加一个块以折叠代码:Snippets在CodePlex(由Omer van Kloeten撰写).下载并查看
Get+Set Property (prop)代码段.
| 归档时间: |
|
| 查看次数: |
349 次 |
| 最近记录: |