c# 修饰符概况

本文深入探讨了C#中的修饰符,包括属性修饰符、存取修饰符、类修饰符和成员修饰符,详细解释了各修饰符的功能与用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        修饰符用于限定类型以及类型成员的申明,C#中的修饰符按功能可分为四部分:属性修饰符,存取修饰符,类修饰符和成员修饰符。

        属性修饰符

       [Serializable]:按值将对象封送到远程服务器。在按值封送对象时,就会创建一个该对象的副本,并将其序列化传送到服务器。 任何对该对象的方法调用都是在服务器上进行的。

       [STAThread]:是Single-Threaded Apartment单线程套间的意思,是一种线程模型(线程模式用于处理组件在多线程的环境里并行与并互的方式),套间线程(STAThread)模式中接口跨线程传递必须被调度(Marshal),不调度直传肯定会失败!而MTA或FreeThread模式中的接口可以不经调度直接传递。这种调度在特定的环境中非常影响性能(可有几百倍之差)。如VB里只支持STAThread模式。FreeThread模式的组件会在里面表现成和跨进程一样慢!线程模式是微软的COM基础中的极其重要的概念。一定要吃透!

       [MTAThread]:是MultiThreaded Apartment多线程套间的意思,同上也是一种线程模型。

       存取修饰符:

       public:存取不受限制。

       private:只有包含该成员的类可以存取。

       internal:只有当前工程可以存取。

       protected:只有包含该成员的类以及派生类可以存取。

       类修饰符:

       abstract:抽象类。指示一个类只能作为其它类的基类。

       sealed:密封类。指示一个类不能被继承。理所当然,密封类不能同时又是抽象类,因为抽象总是希望被继承的。

       static: 静态类。

       partial: 用于创建类、结构体或接口的分文件.便于开发. 

       成员修饰符:

       abstract:指示该方法或属性没有实现。

       sealed:密封方法。可以防止在派生类中对该方法的override(重载)。不是类的每个成员方法都可以作为密封方法密封方法,必须对基类的虚方法进行重载,提供具体的实现方法。所以,在方法的声明中,sealed修饰符总是和override修饰符同时使用。

       delegate:委托。用来定义一个函数指针。C#中的事件驱动是基于delegate + event的。

       const:指定该成员的值只读不允许修改。

       event:声明一个事件。

       extern:指示方法在外部实现。

       override:重写。对由基类继承成员的新实现。

       readonly:指示一个域只能在声明时以及相同类的内部被赋值。

       static:指示一个成员属于类型本身,而不是属于特定的对象。即在定义后可不经实例化,就可使用。

       virtual:指示一个方法或存取器的实现可以在继承类中被覆盖。

       new:在派生类中隐藏指定的基类成员,从而实现重写的功能。 若要隐藏继承类的成员,请使用相同名称在派生类中声明该成员,并用 new 修饰符修饰它。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值