一、参数类型
1.引用参数: 关键字 ref
1.引用参数: public void swap(ref int x, ref int y){} // 引用参数 不再是形参和实参的关系,而是 对变量的内存地址的引用; 变量的内存地址
2.输出参数: 关键字 out
public void getValue( out int x){} // 不用显式的使用return 来返回一个值了; 直接传递进来的out 参数就又返回出去了,其他方面类似 引用参数;
二、可空类型
1.可空类型: nullable:: ?
// 在C# 中 int float bool类型 的默认值为 0整型数据 0.0浮点型数据 true或者false // 可空类型 就是在其数值类型中加上 null; 就是可以赋值为null; // int x; 可以为1 2 3 4 等整型,也可为null; // bool bool_var; 可为true、false和true;
2.合并运算符:: ??
num3 = num2 ?? num1; // 当第一个值为null,则返回num1;否则则返回num1的值; // 类似 三目运算;
三、对象
1.静态方法和实例方法
// 静态方法和实例方法的区别 // 实例方法可以对象调用; 静态方法只能被 类名 调用; 属于类的方法; 1.静态函数中只能含有静态成员;不能含有实例方法; 2. 静态类 // 静态类中: 只能还有静态成员; 不能含有实例成员; // 静态类: 无法创建静态对象,无法实例化; 3.静态类的用处: 1. 静态类作为 '工具类' 来使用, 常用的时候;例如:Console类; Console.writeLine(); 2. 静态类在整个项目中 资源共享; 类似python中的单例模式; 堆 栈 静态存储区域;
四、构造函数和析构函数
// 1.构造函数: 构造函数可以重载; // 2.析构函数: 析构函数只有当程序结束的时候才会执行; 默认 垃圾回收器在回收垃圾; 可以用析构函数在程序一结束的时候立马释放资源;
五、访问修饰符
访问修饰符有:public private protected internal ; 要理解这几个还得分清和类有关的名词:类本身、类的对象(实例化)、类的子类、程序集:
public:共有的成员 所有的都可以访问 private:私有的成员 仅限类本身可以访问 pritected:受保护的成员 类本身和子类可以访问 internal:内部的 只限于本项目内访问,同一命名空间使用 protected internal:受保护的内部成员 本项目内部 和 子类可以访问 实例化对象 对 类本身来说也属于外部; static只有类本身(类名)可以访问;
类定义中可以使用的访问修饰符组合
none or internal 类只能在当前工程中访问
public 类可以在任何地方访问
abstract or internal abstract 类只能在当前工程中访问,不能实例化,只能继承
public abstract 类可以在任何地方访问,不能实例化,只能继承
sealed or internal sealed 类只能在当前工程中访问,不能派生,只能实例化
public sealed 类可以在任何地方访问,不能派生,只能实例化
下面介绍一下C#中方法、类等的默认访问修饰符
接口(interface)
接口成员访问修饰符默认为public,且不能显示使用访问修饰符。
类(class)
构造函数默认为public访问修饰符。
析构函数不能显示使用访问修饰符且默认为private访问修饰符。
类的成员默认访问修饰符为private;
枚举(enum)
枚举类型成员默认为public访问修饰符,且不能显示使用修饰符。
结构(struct)
结构成员默认为private修饰符。
结构成员无法声明为protected成员,因为结构不支持继承。
嵌套类型
嵌套类型的默认访问修饰符为private。 和类,结构的成员默认访问类型一致
希望本文所述对大家的C#程序设计有所帮助。