Default value C# class
本问题已经有最佳答案,请猛点这里访问。
嗨,伙计们,我在控制器中有一个函数,我收到一个表单的信息,实际上我有这个代码:
1 | public Actionresult functionOne(string a, string b, string c ="foo" ) |
我试着把它转换成
1 2 3 4 5 6 | public class bar { public string a {get;set;} public string b {get;set;} public string c {get;set;} } |
把它们当作一个物体来接收
1 | public Actionresult functionOne(bar b) |
此外,我尝试将默认值放入"c",但不起作用,我尝试了以下操作:
1 2 3 4 5 6 7 | public class bar { public string a {get;set;} public string b {get;set;} [System.ComponentModel.DefaultValue("foo")] public string c {get;set;} } |
没发生什么事,我收到的名字是
我也尝试过
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | public class bar { public string a {get;set;} public string b {get;set;} public string c { get { return c; } set { c="foo"; //I also tried with value } } } |
我应该怎么写这个默认值?
谢谢。
如果您使用的是C 6,您可以这样做:
1 2 3 4 5 | public class Bar { public string a { get; set; } public string b { get; set; } public string c { get; set; } ="foo"; } |
否则,您可以这样做:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | public class Bar { public string a { get; set; } public string b { get; set; } private string _c ="foo"; public string c { get { return _c; } set { _c = value; } } } |
1)使用对象的构造函数:
1 2 3 4 5 6 7 8 9 10 11 | public class bar { public bar() { c ="foo"; } public string a {get;set;} public string b {get;set;} public string c {get;set;} } |
2)使用新的自动属性默认值。请注意,这是针对C 6+:
1 2 3 4 5 6 7 | public class bar { public string a {get;set;} public string b {get;set;} public string c {get;set;} ="foo"; } |
3)使用支持字段
1 2 3 4 5 6 7 8 9 10 | public class bar { var _c ="foo"; public string a {get;set;} public string b {get;set;} public string c { get {return _c;} set {_c = value;} } } |
4)使用空合并运算符检查
1 2 3 4 5 6 7 8 9 10 | public class bar { string _c = null; public string a {get;set;} public string b {get;set;} public string c { get {return _c ??"foo";} set {_c = value;} } } |
您是否尝试过设置c值的默认构造函数?
1 2 3 4 5 6 7 8 9 10 11 | public class Bar { public string A { get; set; } public string B { get; set; } public string C { get; set; } public Bar() { C ="foo"; } } |
可以在构造函数中指定默认值
1 2 3 4 5 6 7 8 9 10 11 | public class bar { public bar() { this.c ="foo"; } public string a {get;set;} public string b {get;set;} public string c {get;set;} } |
无论何时创建
稍后,当其他方法被称为
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | public class bar { public bar() { this.c ="foo"; } public string a {get;set;} public string b {get;set;} public string c {get;set;} public void UpdadateValueofC(string updatedvalueofc) { this.c = updatedvalueofc; } } |