定义类成员
来源:互联网 发布:电脑截屏软件 编辑:程序博客网 时间:2024/05/17 04:04
一、定义类成员
先要明确类的成员有哪些:
1.数据成员:字段和常量
2.函数成员:方法、属性、索引器、事件、运算符、构造函数和析构函数
1).NET Framework 中的公共字段以PascalCasing 形式来命名,而不是camelCasing
私有字段没有推荐的命名模式,它们通常使用camelCasing 来命名。
2)只读字段:
使用关键字readonly,表示这个字段只能在执行构造函数的过程中赋值,或由初始化赋值语句赋值。(只能在字段声明或构造函数中重新赋值,在其他任何地方都不能改变只读字段的值)
3)常量:
用const修饰符声明的字段为常量。只能在声明中初始化,以后不能再修改。
按照定义,const 成员也是静态的,所以不需要用static 修饰符(用static 修饰符会产生一个错误)
4)方法:
如果使用了override,也可以使用sealed 指定在派生类中不能对这个方法作进一步的修改,即这个方法不能由派生类重写。
5)属性:
是字段的扩展,提供了一种更灵活和安全的机制来读取、修改或计算字段的值(set,get).NET 中的公共属性也以PascalCasing 方式来命名。
6)自动属性:
利用自动属性,可以用简化的语法声明属性,C#编译器会自动添加未键入的内容。具体而言,编译器会声明一个用于存储属性的私有字段,并在属性的get 和set 块中使用该字段,我们无需考虑细节。
public int MyIntProp { get; set; }
我们按照通常的方式定定义属性的可访问性、类型和名称,但没有给get 和set 块提供实现代码。
这些块的实现代码(和底层的字段)都由编译器提供。
二、嵌套的类型定义:
public class MyClass
{
public class MyNestedClass
{
public int NestedClassField;
}
}
如果要在MyClass 的外部实例化MyNestedClass,就必须限定名称
MyClass.MyNestedClass myObj = new MyClass.MyNestedClass();
三、这里再强调一下接口:
1)不允许使用访问修饰符(public、private、protected 或internal),所有的接口成员都是公共的。
2)接口成员不能包含代码体。
3)接口不能定义字段成员。
4)接口成员不能用关键字static、virtual、abstract 或sealed 来定义。
5)类型定义成员是禁止的
6)接口与类一样,可以定义为类的成员(但不能定义为其他接口的成员,因为接口不能包含类型定义)。
四、部分类定义:
使用部分类定义,可以把类的定义放在多个文件中。例如,可以把字段、属性和构造函数放在一个文件中,而把方法放在另一个文件中。为此,只需在每个包含部分类定义的文件中对类使用partial 关键字即可
public partial class MyClass : IMyInterface1
{
...
}
public partial class MyClass : IMyInterface2
{
...
}
和
public class MyClass : IMyInterface1, IMyInterface2
{
...
}
是等价的
部分类也可以定义部分方法。部分方法在部分类中定义,但没有方法体,在另一个部分类中包含实现代码。在这两个部分类中,都要使用partial 关键字。
public partial class MyClass
{
partial void MyPartialMethod();
}
public partial class MyClass
{
partial void MyPartialMethod()
{
// Method implementation
}
}
部分方法也可以是静态的,但它们总是私有的,且不能有返回值。它们使用的任何参数都不能是out 参数,但可以是ref 参数。部分方法也不能使用virtual、abstract、override、new、sealed 和extern修饰符。
编译代码时,如果代码包含一个没有实现代码的部份方法,编译器会完全删除该方法,还会删除对该方法的所有调用。执行代码时,不会检查实现代码,因为没有检查方法的调用。这会略微提高性能。
- 定义类成员
- 定义一个类成员
- 定义类成员
- C#定义类成员
- 定义类成员
- iOS 类成员定义方式
- 第七篇 定义类成员
- 类静态数据成员定义
- C++ static成员/类专属成员的定义/静态成员
- C++ 12.1 类的定义、声明、成员函数、数据成员
- 类中const 数据成员的定义
- 关于类成员变量定义为引用
- javascript类的定义及成员修改
- c++类中定义静态对象成员
- 类的定义与成员实现
- c++ 定义指向类成员的指针
- c++ 类数据成员的定义、声明
- 定义和调用类中的成员
- 关于投稿
- Lua语法学习(一)
- Java的运行机制
- JSP中的九大内置对象
- mybatis如何遍历Map的key和value
- 定义类成员
- 微信开发-php方法总结
- Anaconda+python+django web开发环境变量配置
- centos7安装最新docker
- JVM 工作机制和分析工具
- QTimer类
- 进程间的通信方式
- 基于低代码平台(Low Code Platform)开发中小企业信息化项目
- Encog3Java-User.pdf翻译:第一章 回归,分类 & 聚类