1)这2行之间有什么区别?我可以用同样的方式访问它们:
public string ShortName;
//and
public string ShortName { get; set; }
2)你什么时候使用像java这样的c#getters,你什么时候使用c#。
我看到c#itselfe使用java样式,如GetType
//Like Java:
public string GetShortName(){
return _shortName
}
//Like c#:
public string ShortName { get { return _shortName; } set;}
3)为私人会员命名的常见惯例是什么?
private string _shortName; //要么 private string shortName;
4)命名常量的常见惯例是什么?
public const string SHORT_NAME;
//or
public const string ShortName;
5)在什么情况下你选择在一个.cs文件中放置多个类?
6)您是否将命名空间命名为与文件夹结构不同?
由于
答案 0 :(得分:1)
1。)和2.)关于属性的很酷的事情是你可以在访问器中做好事。 E.g。
private string name;
public String Name{
get{
if(this.name == String.Empty)
return "No name given";
else
return name;
}
}
当成员不是值类型而是某个类时,这会变得更有趣。因此,虽然属性为您提供了对函数的控制,但它可以像公共成员一样使用。您还可以将set访问器设置为内部,受保护甚至是私有。
3。),4。)和6.)有许多命名约定。见for Microsoft's
5.)不要。从长远来看,这会让你遇到麻烦。一个例外是嵌套(privat)类。
答案 1 :(得分:0)
1)第一个是字段,第二个是(自动实现)属性。最佳做法是使用属性来公开值,而不是字段。
2)属性实现getter和setter,你不必编写javastyle getter和setter方法,并假装它们属于一起。
3)和4)都使用了。
5)当你想再次找到这个班级时,最好是坚持每个文件一个班级。
6)通常不会。