![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=1739413013-e7lZTUETuExzFORD8gF8iCjLTqKddKRF-0-a4c550f1172d8e250b07c9e3cd316e98)
和第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=1739413013-M5ygiYIp0nrX2eabjX4PCMIbczGxvMSD-0-b1031d0bc98bb528a41c1b248fb1828e)
![](https://epubservercos.yuewen.com/7885FF/22815793809130806/epubprivate/OEBPS/Images/d6.8x.jpg?sign=1739413013-eSrpt9T65yvEJU9Ia7DS1fW9bDkK6dFl-0-70c9fa47611565682b2f25f850c6c659)
输出6.2
![](https://epubservercos.yuewen.com/7885FF/22815793809130806/epubprivate/OEBPS/Images/s6.2.jpg?sign=1739413013-IgDu5GuZGOC4qYunRuPjhF9FYg0wQxlJ-0-e59ddf8fc8bb4c84c031b7368a0343f0)