可以在代码中使用它(在mvc 3上下文或任何其他上下文中):
protected String test { get; set; }
想知道为什么会这样,如果你有任何答案,为什么不这样。
感谢。
答案 0 :(得分:2)
这只是一种便利。
它所做的只是删除锅炉板代码,因为它确实等同于
private String _test;
protected String test{
get{
return _test;
}
set{
_test = value;
}
}
所以,当它就是这样的时候,使用魔法套装。 当你需要做一些更时髦的事情时,请实现getsetters。
例如,在MVC中,我经常想为我的属性使用Enums,但CodeFirst不支持它。所以,我这样做:
[Column("Type")]
public byte DBType;
public MyCustomEnum Type{
get{
return (MyCustomEnum)DBType;
}
set{
DBType = (byte)value;
}
}
这会按预期填充我的数据库。
答案 1 :(得分:1)
完全没问题。与使用具有手动支持的完整属性完全相同,只是它的支持由编译器自动生成。如果您需要更好地控制get-set的实现,请务必使用详细语法,但如果您只需要简单的属性(例如,对于MVC中的VM属性),请使用此语法,因为它使代码更具可读性和直截了当。