修饰符作用:
修饰符用于限定类型以及类型成员的申明。
C#中修饰符种类:
C#中有13种修饰符
,按功能可分为三部分:存取修饰符,类修饰符和成员修饰符
.
存取修饰符:
public:存取访问不受限制
.
private:只有包含该成员的类可以存取.当前类才能访问
internal:只有当前工程可以存取.只限于类所在的命名空间
(不包括子类)
protected:只有包含该成员的类以及继承的类可以存取
.
类修饰符:
abstract:抽象类,可以被指示一个类只能作为其它类的基类.必须被继承和重写的
sealed:密封类,指示一个类不能被继承
.防止该类被其它类继承
partial:
部分类,可以将一个类、结构或接口的定义拆分到两个或多个源文件中,最终编译时将合并成一个文件
,且各个部分不能分散在不同程序集中。
成员修饰符:
abstract:指示该方法或属性没有实现.只能在抽象类中声明
const:指定域或局部变量的值不能被改动
.
event:声明一个事件.
extern:指示方法在外部实现
.
override:对由基类继承成员的新实现.
readonly:指示一个域只能在声明时以及相同类的内部被赋值.
static:指示一个成员属于类型本身
,而不是属于特定的对象.
virtual:指示一个方法或存取器的实现可以在继承类中被覆盖
.
静态类和类成员用于创建无需创建类的实例就能够访问的数据和函数。静态类成员可用于分离独立于任何对象
标识的数据和行为:无论对象发生什么更改,这些数据和函数都不会随之变化。当类中没有依赖对象标识的数据或行为时,就可以使用静态类。
静态类型属于类
非静态属于对象
用static关键字符标识的程序元素是静态的,不用static标识的程序元素是非静态.两者的区别
在于:静态的东西是在类型加载初始时初始化的,并且与类相关.非静态东西一般放在实例的构造函数中初始化,它是与特定类的实例相关的.
抽象方法与虚方法的区别
1.abstract方法只能在抽象类中声明,virtual则不是。
2.abstract方法必须在派生类中重写,而virtual则不必
3.abstract方法不能声明方法实体,
abstract public void SD();
虚方法则可以
public virtual void sdf()
{
Console.WriteLine("A");
}
4.虚方法可以实现多态,而抽象方法不可以。
修饰符使用注意事项:
1、同时对一个类作abstract和sealed的修饰是没有意义的,也是被禁止的。
2、
当一个类或方法没有被任何修饰符修饰时,默认为internal。
3、const和Readonly的区别:const在编译时必须能够明确知道该字段的值,其值是硬编码到程序中去的,修改了该类型成员后需要重新编译才能使修改生效。而readonly是运行时
只读,内容在运行时确定,所以修改了readonly类型成员后无需重新编译即可生效。Readonly不能修饰局部变量,const可以。
Sealed:修饰类时表示该类不能够被继承,修饰方法时表示该方法不能被覆写。
Static:修饰类时表示该类时静态类,不能够实例化该类的对象,既然不能实例化该类,那么这个类也就不能够含有对象成员,即该类所有成员为静
态;修饰类成员时,该成员为类成员,只能通过【类.成员名】的方式访问
当static修饰构造函数时,构造函数不能含有任何参数,不能含有修饰符,构造函数不能对对象成员进行初始化操作。但是能够对静态成员进行初始化
或者调用。不能保证他在什么时候执行,却能保证在第一次使用类型前执行。在静态构造函数中初始化的静态成员为最终初始化结果。
Virtual:修饰方法成员,表示虚方法。父类可以含有该类的实现,子类可以覆写该函数。
下面是C#中修饰符的具体意义:
修饰符
|
应用于
|
说明
|
public
|
所有的类型或成员
|
任何代码
均可以访问该成员
|
protected
|
类型和内嵌类型(即在一个类中定义的类)的所有成员
|
只有派生的类型
能访问该成员
|
internal
|
类型和内嵌类型的所有成员
|
只能在包含它的程序集
中访问该成员
|
private
|
所有的类型或成员
|
只能在它所属的类型
中访问该成员
|
protected internal
|
类型和内嵌类型的所有成员
|
能在包含它的程序集
或
派生类型
中访问该成员
|
|
|
|
new
|
函数成员
|
成员用相同的签名隐藏继承的成员
|
static
|
所有的成员
|
成员不在类的具体实例中执行
|
virtual
|
仅函数成员
|
成员可以由派生类重写
|
abstract
|
类和函数成员
|
抽象成员定义了成员的签名,但没有提供实现代码
|
override
|
仅函数成员
|
成员重写了继承的虚拟或抽象成员
|
sealed
|
类
|
成员重写了继承的虚拟成员,但继承该类的任何类都不能重写该成员。必须与
override
一
起使用
|
extern
|
仅静态[DllImport]方法
|
成员在外部用另一种语言实现
|
分享到:
相关推荐
C#学习之路--访问修饰符 访问修饰符是C#语言中的一种机制,用于控制对象的访问权限。在C#中,访问修饰符有五种:private(私有的)、protected(受保护的)、internal(程序集内部的)、public(公开的)和...
C#修饰符 C#语言中,修饰符是用来定义类、方法、属性、字段等成员的访问权限、行为和特性的关键字。...通过学习C#和Java语言中的修饰符,我们可以更好地理解和使用这些关键字,从而编写更加高效、安全、灵活的程序。
在C#编程中,参数修饰符是我们在定义方法时用于控制参数传递方式的关键字。Unity引擎,一个广泛用于游戏开发的平台,也基于C#语言,因此理解和掌握这些修饰符对于编写高效、灵活的代码至关重要。本文将深入探讨Unity...
C#的关键字包含多种类型,如访问修饰符(public、private等)、类型声明关键字(class、interface等)、流程控制关键字(if、else、switch等)、异常处理关键字(try、catch等)。 上下文关键字是指那些在特定上...
CS核心_02成员变量和访问修饰符 CS核心_03成员方法 CS核心_04封装_构造函数和析构函数 CS核心_05_封装_成员属性 CS核心_06_封装_索引器 CS核心_07_封装_静态成员 CS核心_08_封装_静态类和静态成员 CS核心_09_封装_...
笔记可能还会涵盖访问修饰符(public、private、protected、internal),继承、封装和多态这些面向对象的基本特性。 函数成员(方法)也是C#的重要部分。笔记会介绍方法的定义、重载和重写,以及如何使用方法参数和...
- 封装:通过访问修饰符(public, private等)实现数据保护,减少代码耦合。 - 继承:子类继承父类的特性,实现代码重用和扩展。 - 多态:同一接口,不同实现,允许函数根据接收的对象类型动态改变行为。 3. **...
- **封装**:通过访问修饰符(public, private, protected)实现数据的隐藏和保护。 - **继承**:允许一个类(子类)从另一个类(父类)继承属性和方法,实现代码复用。 - **多态**:同名方法在不同类中有不同的...
此外,你还会学习到类的构造函数和析构函数,以及访问修饰符(public、private、protected和internal),它们用于控制类成员的可见性。 面向对象编程(OOP)是C#的核心概念之一,包括封装、继承和多态。封装允许你...
此外,构造函数、析构函数、属性、方法、访问修饰符也是这一章的重点。 6. **第七章:高级主题** 通常,第七章会涉及一些更复杂的主题,如接口、抽象类、委托、事件和异步编程。委托和事件是C#中处理回调和响应...
此外,还将讲解对象的实例化、方法的重载和重写,以及访问修饰符(public、private、protected等)的概念。 继承是面向对象编程的关键特性,笔记会解释如何在C#中实现一个类从另一个类继承,以及如何使用抽象类和...
在C#中,我们可以使用访问修饰符(如`public`, `private`, `protected`, `internal`)来控制成员的可见性。这有助于减少代码间的耦合度,提高安全性。 3. **继承** 继承允许一个类(子类)继承另一个类(父类)的...
* 如果不写访问修饰符,类的默认访问类型是private。 三、类和结构体的区别 * 类是引用类型,结构体是值类型。 * 类可以被继承,结构体不能被继承。 四、新建对象 * 在C#中,使用new关键字来创建对象的实例。 ...
封装通过访问修饰符(如public、private)来保护数据;多态则允许不同类型的对象对同一消息作出响应。 4. **接口(Interface)**:接口定义了一组方法签名,类可以实现多个接口,从而实现多重继承的效果。 5. **...
封装通过访问修饰符(public、private、protected等)来保护数据,多态性则通过抽象类和接口实现,增强了程序的灵活性和扩展性。 C#还支持异常处理,通过try-catch-finally语句块来捕获和处理运行时错误。此外,...
PPT中可能详细解释了类的构造函数、析构函数,以及访问修饰符(public、private、protected等)的使用。 【继承与多态】 C#支持单一继承,一个类可以继承另一个类的特性,从而实现代码重用。同时,C#还提供了接口...
总的来说,C#学习中的盲点涵盖了从基础语法到高级特性的多个方面,只有全面理解和熟练应用这些知识点,才能成为一名合格的C#开发者。通过深入阅读"c#中的盲点1.txt"和"c#中的盲点2.txt",相信你能对这些盲点有更清晰...