当前位置:首页 > C#教程 > C#基础

C#封装

封装 被定义为"把一个或多个项目封闭在一个物理的或者逻辑的包中"。在面向对象程序设计方法论中,封装是为了防止对实现细节的访问。

抽象和封装是面向对象程序设计的相关特性。抽象允许相关信息可视化,封装则使开发者实现所需级别的抽象。

一个 访问修饰符 定义了一个类成员的范围和可见性。C# 支持的访问修饰符如下所示:

public:所有对象都可以访问;
private:对象本身在对象内部可以访问;
protected:只有该类对象及其子类对象可以访问
internal:同一个程序集的对象可以访问;
protected internal:访问限于当前程序集或派生自包含类的类型。 允许在本类,派生类或者包含该类的程序集中访问。这也被用于实现继承。
如果没有指定访问修饰符,则使用类成员的默认访问修饰符,即为 private。

方式 描述
值参数 这种方式复制参数的实际值给函数的形式参数,实参和形参使用的是两个不同内存中的值。在这种情况下,当形参的值发生改变时,不会影响实参的值,从而保证了实参数据的安全。
引用参数 这种方式复制参数的内存位置的引用给形式参数。这意味着,当形参的值发生改变时,同时也改变实参的值。//使用 ref 关键字声明引用参数 /* 调用函数来交换值 */
n.swap(ref a, ref b);
输出参数 这种方式可以返回多个值。 //n.getValue(out a); 使用 out 关键字声明引用参数
 单问号用于对 int、double、bool 等无法直接赋值为 null 的数据类型进行 null 的赋值,意思是这个数据类型是 Nullable 类型的。

int i; //默认值0
int? ii; //默认值null   意思是这个数据类型是 Nullable 类型的

double? num3 = new double?();
double? num4 = 3.14157;
bool? boolval = new bool?();

 双问号用于判断一个变量在为 null 的时候返回一个指定的值。

Null 合并运算符用于定义可空类型和引用类型的默认值。运算符的左操作数不为 null,那么运算符将返回左操作数,否则返回右操作数。

注:Null 合并运算符左右两边操作数的类型必须相同,或者右操作数的类型可以隐式的转换为左操作数的类型(小转大),否则将编译错误。

 num3 = num1 ?? 5.34;      // num1 如果为空值则返回 5.34
?.
checktimer?.Dispose();

“评估第一个操作数;如果它为空,则停止,结果为空。否则,评估第二个操作数(作为第一个操作数的成员访问)。”

【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!