![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=1739258720-2ZjebDmfTHiLriaS0kT8rVAlCbT5MZZo-0-8bf881455fe36faff83022e2ebe82584)
和第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=1739258720-TuATIJEZ4IvGwP5S6HMhUzGGQyrI4j9J-0-5c1a7af178830ff1d377955d4d1e22a8)
![](https://epubservercos.yuewen.com/7885FF/22815793809130806/epubprivate/OEBPS/Images/d6.8x.jpg?sign=1739258720-HEoFEe9AKIzArmnpheCLkWYasGsqnRDB-0-ba2d3786ef4cd34ea72a8047d5d9c336)
输出6.2
![](https://epubservercos.yuewen.com/7885FF/22815793809130806/epubprivate/OEBPS/Images/s6.2.jpg?sign=1739258720-QEZUuGurXywCq2Rr2O7tZhovt6w6t9Lj-0-1ab185bdd4d4b5cde545c7780fa722b7)