c#初学者很少有基本的“最佳实践”问题

时间:2011-10-27 07:54:37

标签: c# syntax

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)您是否将命名空间命名为与文件夹结构不同?

由于

2 个答案:

答案 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)通常不会。