导语
本篇仅作为初学C#的随笔,内容较基础,适合初级水平开发者,浅谈主题中的话题,从两者的相同点,不同点,和如何选三个角度探讨,希望文章能起到抛砖引玉的作用,欢迎补充和纠正。
如果你并不想花费十分钟左右探究背后的所以然,请直接滚(动滚动条)到“public
or 属性”部分
public
and 属性
在我们需要对类中声明的字段(field)进行操作的时候,有两种方法:
- 将字段以
public
修饰,以达到将数据暴露给所有代码的目的 - 将字段以
private
修饰,通过属性(property)与属性访问器(accessor)操作字段
如果你正在看这篇文章,那么肯定有这样的疑惑:“这两种方式有什么实质性的区别么?”,将数据以private
修饰将其对外隐藏、保护,然后又通过定义与之关联的属性,并以访问器来提供访问手段,和直接用public
修饰的区别何在?
public
关键字
顾名思义,不赘述。
查看MS Docs中的public
关键字
private
关键字 属性及其访问器
private
关键字
属性
get
和set
访问器
相同点
都是类的成员 | 访问的语法相同 | 都提供类的存储 |
---|
public
vs 属性
以下示例中:
一个简单的垃圾桶类,包含一个描述垃圾种类的字段
通过public
修饰字段
用户可以将任何字符串类型的数据作为垃圾分类的值
public class GarbageCan
{
public string garbageClass;//最高访问级别,除取值类型限制为string以外,没有访问限制,
//任意程序中的任意代码可读写
}
private static class GarbageClassification
{
private static void Main()
{
GarbageCan can1 = new GarbageCan<