C#星辰之路

一、参数类型

  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#程序设计有所帮助。

  

 

作者:today_IT
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
原文地址:https://www.cnblogs.com/today_IT/p/13877460.html