![C# 8.0本质论](https://wfqqreader-1252317822.image.myqcloud.com/cover/306/43475306/b_43475306.jpg)
上QQ阅读APP看书,第一时间看更新
6.3 实例方法
在Main()中调用WriteLine()方法并对姓名进行格式化其实是笨办法。更好的办法是在Employee类中提供方法专门进行格式化。将功能修改成由Employee提供,而不是作为Program的成员,这符合类的封装原则。为什么不把与员工姓名相关的方法放到包含姓名数据的类中呢?代码清单6.7演示了如何创建这样的一个方法。
代码清单6.7 从包容类内部访问字段
![](https://epubservercos.yuewen.com/7885FF/22815793809130806/epubprivate/OEBPS/Images/d6.7.jpg?sign=1739130928-vaLOYsy5jridBzY8m1TSzAoIjdCnpYiI-0-fba5a70d5d9c65bce2e066a79d50c6cb)
和第5章的同名方法相比,这里的GetName()没有太多特别之处,只是方法现在访问对象中的字段,而非访问局部变量。此外,方法声明没有用static来标记。本章稍后会讲到,静态方法不能直接访问类的实例字段。相反,必须先获得类的实例才能调用实例成员——无论该实例成员是方法还是字段。
添加GetName()方法后就可以在更新后的Program.Main()中使用它,如代码清单6.8和输出6.2所示。
代码清单6.8 从包容类外部访问字段
![](https://epubservercos.yuewen.com/7885FF/22815793809130806/epubprivate/OEBPS/Images/d6.8.jpg?sign=1739130928-gGs0AeZu5oNn32NM5ZVTrELt0Ro0JLQw-0-f7872a8ab8c470b07c8c0a143f947298)
![](https://epubservercos.yuewen.com/7885FF/22815793809130806/epubprivate/OEBPS/Images/d6.8x.jpg?sign=1739130928-nBaMe6SROpmd24vCqP783o4Xyn7HuQjj-0-5e4408f913e6b30532d18068457d64b6)
输出6.2
![](https://epubservercos.yuewen.com/7885FF/22815793809130806/epubprivate/OEBPS/Images/s6.2.jpg?sign=1739130928-FmOTVbyw0FroxNCxuka0hIRyO9yPg0vn-0-ef5e51313b216f405f44fd6dc34ee69f)