【C#学习】24类的访问级别


纠正【声明】 类,【创建】 实例

声明类的位置

(1)名称空间中(最常见)

(2)全局名称空间中——所有显式的名称空间之外

(3)类中:声明在类体中的类是【成员类】,它像属性,方法,字段一样属于【类成员】

声明VS定义

  • 在C++中,类的声明与定义是可分开的,并且编程规范建议分开写
  • 但在C#中,类的声明与定义不能分开,必须合在一起,所以可以理解为【声明即定义】

类声明的语法格式

在这里插入图片描述
虽然语法格式看起来非常复杂,但是绝大多数类的声明都简单清晰,因为如果把类声明的所有语法元素都用上,这个类的功能就模糊了,意义也就不大了

  • 在类的声明中,有三个部分不能省略
    (1)class关键字:表明要声明一个类
    (2)identifier,标识符:也就是类名(类的命名方式为Pascal,大写每个单词首字母)
    (3)类体

  • 类修饰符 【modifier】
    在这里插入图片描述
    类修饰符可按逻辑进行分组,比如说:
    (1)按继承关系:abstract,sealed
    (2)按类的访问级别:public,internal
    (3)类是类成员:public,protected,internal,private
    (4)静态类:static

  • 类的访问级别修饰符:public,internal
    public:决定在该类所在【项目】之外的其他项目中,能否看到该类
    internal:把类的访问级别限制在【项目】级别中(默认)

代码示例

(1)右键 Solution,添加一个新项目,选择 Class Libiary ,可命名为MyLib

(2)在MyLib项目中,添加 new folder,编译器会自动把其视为一个名称空间,所以可命名为 Mynamespace

(3)在名称空间 Mynamespace中,添加 class,可命名为 Calculator

(4)为类Calculator写一个Add()方法,此时不为此类添加任何修饰符
在这里插入图片描述

(5)回到Program.cs(最开始创建的project),在右侧面板中选择 References——Add Reference——solution——MyLib

(6)为了省去写全限定名的麻烦,using MyLib.Mynamespace;

(7)可以看到,如果想在Program类中引用在MyLib.Mynamespace中声明的Calculator类,是做不到的,因为这个类的访问级别不是【public】
如果将Calculator类的访问级别改为public,就可以自由引用了

说明
(1)在默认情况下,也就是不为类写任何限制其访问级别的修饰符,类的访问级别是【internal】,也就是该类只能被其所在的项目中的其他成员访问,外界不能访问

(2)因为【HelloClass】(一开始创建的project)引用了【MyLib】,所以可以说:【HelloClass】依赖于【MyLib】

  • 【Assembly】:译为装配集,装配件或程序集
    一般情况下,每一个项目的编译结果,就是一个程序集
    而常见的编译结果就两种:
    (1).exe文件——可执行文件
    (2).dll——类库
    如果想要配置编译结果,在项目上右键,选择【properties】

总结
(1)【public】是将一个类从程序集中暴露出去,使引用该程序集的程序集能够看到并访问该类

(2)【interenal】把类的访问限制在项目级别中,如果想让一个类只能被它所在的程序集中的其他成员所访问,就应该把这个类的访问级别设置为internal,且它是默认情况

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值