访问修饰符与字段修饰符
访问修饰符
修饰类主要有2个,即
internal
和public
,如果省略了访问修饰符,即为internal
。-
( 1) public
成员可以被任何代码访问。
(2) internal
成员仅能被同一个项目中的代码访问。
(3) protected
成员只能由类或派生类中的代码访问。
(4) private
成员仅能被同一个类中的代码访问,如果在类成员前未使用任何访问修饰符,则默认为
private
。
字段修饰符
主要有2个,readonly
和static
使用
readonly
修饰字段意味着只能读取该字段的值而不能给字段赋值。使用
static
修饰的字段是静态字段,可以直接通过类名访问该字段。常量不能使用static
修饰符修饰。
字段在类中定义完成后,在类加载时,会自动为字段赋值,不同数据类型的字段默认值不同, 如下表所示。
数据类型 | 默认值 |
---|---|
int | 0 |
float、double | 0 |
string | 空值 |
char | a |
bool | False |
其他引用类型 | 空值 |
方法参数
方法中的参数除了定义数据类型外,还可以定义引用参数和输出参数。引用参数使用 ref
关键字定义,输出参数使用 out
关键字定义。
- 引用参数在方法使用时,必须是由变量赋予的值,不能是常量或表达式;
- 在需要在每一个参数前面加上
ref
关键字修饰。
1 | public int Add(ref int num1, ref int num2) |
- 在使用输出参数时,必须在方法操作结束前为带输出参数的形式参数赋值;
- 在调用含有带输出参数的方法时,必须在传递参数时使用
out
关键字,但不必给输出参数赋值。
1 | public int Add(int num1, int num2, out int sum) |
partial部分类
用于表示一个类中的一部分,一个类可以由多个部分类构成,定义部分类的语法形式如下:
1 | 访问修饰符 修饰符 partial class 类名{……} |
1 | namespace TestClass |
在“不同”的部分类中可以直接互相访问其成员,相当于所有的代码都写到一个类中。
sealed
通过在类定义前面放置关键字 sealed,可以将类声明为密封类。当一个类被声明为 sealed 时,它不能被继承。抽象类不能被声明为 sealed。
virtual
虚方法是使用关键字 virtual 声明的。
虚方法可以在不同的继承类中有不同的实现。
对虚方法的调用是在运行时发生的。
动态多态性是通过 抽象类(abstract) 和 虚方法(virtual) 实现的。
静态多态性通过方法重载和运算符重载实现
重载运算符是具有特殊名称的函数,是通过关键字 operator 后跟运算符的符号来定义的。与其他函数一样,重载运算符有返回类型和参数列表。
1
2
3
4
5
6
7 public static Box operator+ (Box b, Box c)
{
Box box = new Box();
box.length = b.length + c.length;
box.height = b.height + c.height;
return box;
}
异常类
C# 异常是使用类来表示的。C# 中的异常类主要是直接或间接地派生于 System.Exception 类。System.ApplicationException 和 System.SystemException 类是派生于 System.Exception 类的异常类。System.ApplicationException 类支持由应用程序生成的异常。所以程序员定义的异常都应派生自该类。System.SystemException 类是所有预定义的系统异常的基类。