小问题【3】
this关键字:
this是传给每一个实例方法的一个隐式参数,他返回对象本身的一个实例。
代码:
class Employee { public string FirstName; public string LastName; public void SetName(string FirstName, string LastName) { //若不用this, 指的是参数FirstName 和 LastName 而不是字段 this.FirstName = FirstName; this.LastName = LastName; } }
C#命名规范: 参数要想局部变量那样使用camel大小写风格, 字段要用pascal大小风格。
所以上面方法要写成:
public void SetName(string firstName, string lastName)
定义属性: (属性提供了从编程角度看类似于字段的API,但事实上并不存在这样的字段,对字段封装了)
代码:
class Employee { public string FirstName { get { return _FirstName; } set //可以设置验证条件 { _FirstName = value; //value关键字引用赋值运算符的右侧部分 } } private string _FirstName; //命名风格 }
C#3.0中的简化版本:
class Employee { public string FirstName { get; set; } }
注意:
1. 属性可以作为虚字段使用,通过拼接、计算得到
2. 属性和方法调用不允许使用ref 和 out参数