C#基础知识点梳理一

  嗯~,这是我的第一篇博客,作为一个程序小白来到这里学习知识,转眼注册博客园已经快一年了,嗯,整理一些小知识,既是自己的知识梳理,也是和大家分享和共勉,感谢…

先介绍一些最基本的名词解释吧

CLR(Common Lanauage Runtime)  公共语言运行库

BCL(Base Class Libary)  基类库

GC(Garbage Collector)  垃圾收集器

CIL(Common Intermediate Language)  公共中间语言

CLI(Common Language Infrastructure)  公共语言基础结构

emm..接下来是格式规范啦,我觉得有良好的代码习惯很重要,格式和注释

Pascal 大小写 一般用在类,方法,命名空间,属性和公共字段上

Camel大小写  一般用在局部变量名称和方法形参名称上

下划线加Camel大小写 一般用在私有成员和受保护字段上

标识符:字母和下划线都可以但是数字不能放在首位,@只能放在首位但是不推荐使用,特别注意,标识符是区分大小写的!

var实际上是编译期抛给我们的“语法糖”,一旦被编译,编译期会自动匹配var 变量的实际类型,并用实际类型来替换该变量的申明

dynamic被编译后,实际是一个object类型,只不过编译器会对dynamic类型进行特殊处理,让它在编译期间不进行任何的类型检查,而是将类型检查放到了运行期。

小知识

每个C#程序必须有一个类且带有Main()方法;语句块是指用{     }包围的一条或多条语句,它在语法上相当于一条语句

Write 不换行显示  WriteLine换行显示    ({0}  {1}    {2}, 1 , 5 ,7}从零开始  一一对应输出     {0:C}格式化字符串

值类型:存储在栈里(包括13种预定义简单类型,结构和枚举)

引用类型:栈里存储引用,指向堆里的数据(object,string,dynamic,||  class,interface,delegete,array)三种非简单类型

大方法

16种预定义类型,6种用户定义类型

类型 class  结构类型 struct  数组类型 array  枚举类型 enum  委托类型 delegate  接口类型 interface

分点精讲   ——类

类成员的类型:

数据成员存储数据:字段和常量

函数成员执行代码:方法,运算符,属性,索引器,构造函数,事件,析构函数

常量:Const 本地常量 声明时赋值 不能声明为static 不可改变   readonly常量  随时赋值  运行时确定常量的值

方法:有名称的可执行代码块  void SumNum()  返回类型 方法名  参数列表   Sum sum = new Sum()   声明并初始化一个方法

形参:本地变量,声明在方法的参数列表中 void SumNum(int x,int y) 

实参:初始化形参的表达式称为形参 SunNum(5,3)

将引用类型作为值参数传递:赋一个新值给形参,将切断形参与实参的关联,并且在方法调用结束后,新对象也不复存在(分离改变)

将引用类型对象作为引用参数传递:赋一个新值给形参,在方法调用结束后,该对象仍然存在,并且是实参所引用的值(一起改变)

引用参数:ref修饰符  (实参必须是变量 在用作实参前必须被赋值)就像是形参作为实参的别名  方法和调用上都要用修饰符

输出参数:out修饰符 (实参必须是变量,在读取之前必须被赋值 必须在方法内进行赋值)

参数数组:一个参数列表只能有一个,且必须是最后一个,用params修饰符  void ListInts(params int[] inVals)  修饰符 int型参数数组 参数名称

两个为参数数组提供实参  ListInts(10,20,30)     方法二    int[] intArray = {1,2,3}; ListInts(intArry);

一个类中可以有一个以上的方法拥有相同的名称,这叫做方法重载,但是必须有不同的签名( 方法名称,参数数目,数据类型和顺序,参数修饰符)

命名参数:只要显式的指定参数的名字,就可以以任意顺序在方法调用中列出实参  int result = mc.Calc(c:2,a:4,b:3);

可选参数:方法定义时确认值,调用时可以选择不覆盖   public int Calc(int a,int b = 3)

递归:调用自身 public void Count(int intVal){  if(inVal == 0) return; else Count(InVal -1)    Console.WriteLine("{0}“,inVal );}

静态函数成员:不能访问实例成员,能访问其他静态成员(字段,类型,方法,属性,构造函数,运算符,事件)

访问修饰符:

public 公有的  没有限制,任何地方可以访问。

private 私有的  当前类的内部可以访问

internal 内部的    当前程序集内部。

protected 受保护的  当前程序集内部,并且所有的子类内部也可以访问。

protected internal 受保护的内部的  当前类内部,所有子类内部,当前程序集内部都可以访问。

属性:有类型,可以被赋值和读取,可以有静态属性,函数成员,不分配内存,属于命名类的成员,set{   }   get{   }(必须包含一条return语句)  为属性赋值 从属性获取值

两种命名约定:属性使用Pascal大小写  字段使用Camel大小写  方法二:属性使用Pascal大小写  字段使用下划线开始的Camel大小写

猜你喜欢

转载自www.cnblogs.com/simple123/p/9278675.html