private string strName; | 访问方法 | |
修改成员访问符 | 修改:private string strName;为:public string strName; | EmployeeInfo empNew...; string strNameValue = empNew.strName; empNew.strName = "me"; |
公有成员函数 | 增加如下两个成员函数: public string getName() { return strName; } public void setName( string Name ) { strName = Name; } | EmployeeInfo empNew...; string strNameValue = empNew.getName(); empNew.setName( "me" ); |
属性 | 增加如下属性: public string Name { get{ return strName;} set{ strName = value; } } | EmployeeInfo empNew...; string strNameValue = empNew.Name; empNew.Name = "me"; |
类的封装性 | 代码安全性 | 代码繁琐性 | 代码效率 | |
修改成员访问符 | 破坏类的封装 | 存在潜在危险 | 简便 | 最高 |
公有成员函数 | 没有破坏 | 安全 | 繁琐,而且调用不直接 | 最低 |
属性 | 没有破坏 | 安全 | 简便 | 仅次于第一种方法 |
.property instance string Name()
{
.get instance string NameSpace.EmployeeInfo::get_Name()
.set instance void NameSpace.EmployeeInfo::set_Name(string)
}// end of property EmployeeInfo::Name
.method public hidebysig specialname instance string get_Name() cil managed
{
...
}// end of method EmployeeInfo::get_Name
.method public hidebysig specialname instance void set_Name(string "value") cil managed
{
...
}// end of method EmployeeInfo::set_Name
如上就是前面EmployeeInfo类的Name属性所转换的中间语言代码(不过省略了函数的 具体实现代码,因为这里并不是为了研究中间语言代码,如果需要对这部分有更多地了解 ,参看中间语言相关书籍)。