C#学习 入门到放弃

关系

.NET平台提供环境,.NET frameWork 提供工具--->完成软件开发

类比
​​​​​​​.NET平台 ----->中国移动互联网平台             .NET frameWork------->信号塔,提供稳定环境

C# 语法学习

      

1.数据类型

(1)值类型、指针类型
(2)引用类型(是一个内存位置,但不包含存储在变量中的实际数据)
  (3)对象类型(装箱:值类型->对象;拆箱:对象类型->值类型 )
(​​​​​​​4)动态类型:可存储任何类型的值在动态数据类型变量中,这些变量的类型检查在运行发生
(5)字符串(String)类型:<1>“”   <2>@:将转义字符(\)当作普通字符对待

2.类型转换

  • 隐式转换: 派生类-->基类(安全)
  • 显式转换 -:用强制转换运算符强制转换(数据可能丢失)

3.封装

  • 访问修饰符:
  • public:所有对象都可以访问;
  • private:对象本身在对象内部可以访问;
  • protected:只有该类对象及其子类对象可以访问
  • internal:同一个程序集的对象可以访问;
  • protected internal:访问限于当前程序集或派生自包含类的类型。

4.可空类型(Nullable)

(1)  ? 单问号用于对 int、double、bool 等无法直接赋值为 null 的数据类型进行 null 的赋值​​​​​​​
(2)  ?? 双问号用于判断一个变量在为 null 的时候返回一个指定的值

 

5.Format格式日期

C#学习 入门到放弃_第1张图片

6.结构和类

(1)区别:

1、结构是值类型,它在栈中分配空间;而类是引用类型,它在堆中分配空间,栈中保存的只是引用。
2、结构类型直接存储成员数据,让其他类的数据位于堆中,位于栈中的变量保存的是指向堆中数据对象的引用。

(2)适用场合:

    1、当堆栈的空间很有限,且有大量的逻辑对象时,创建类要比创建结构好一些;
    2、对于点、矩形和颜色这样的轻量对象,假如要声明一个含有许多个颜色对象的数组,则CLR需要为每个对象分配内存,在这种情况下,使用结构的成本较低;
    3、在表现抽象和多级别的对象层次时,类是最好的选择,因为结构不支持继承。
    4、大多数情况下,目标类型只是含有一些数据,或者以数据为主。

7.枚举(Enum):枚举列表中的每个符号代表一个整数值,从0开始,逐渐增大》

C#学习 入门到放弃_第2张图片

8.构造函数:构造函数的名称与类的名称完全相同,它没有任何返回类型

  析构函数:类的名称前加上一个波浪形(~)作为前缀。用于在结束程序之前释放资源

 例:

C#学习 入门到放弃_第3张图片

9.(1)静态变量:一个类成员为静态时,无论有多少个类的对象被创建,只会有一个该静态成员的副本。

C#学习 入门到放弃_第4张图片

(2)成员函数:声明为 static,这样的函数只能访问静态变量

10.C# 不支持多重继承,但可以使用接口来实现多重继承。(只有一个亲爹,但可以认几个干爹)

11.多态:“同一个函数”具有不同功能。定义几个相同名的函数,但参数类型、个数不全相同。

静态多态性中,函数的响应是在编译时发生的(函数重载、运算符重载实现)

动态多态性中,函数的响应是在运行时发生的

12.virtual和abstract:都是用来修饰父类的,通过覆盖父类的定义,让子类重新定义。

(1).virtual修饰的方法必须有实现(哪怕是仅仅添加一对大括号),而abstract修饰的方法不能实现。
 (2).virtual可以被子类重写,而abstract必须被子类重写。
 (3).如果类成员被abstract修饰,则该类前必须添加abstract,因为只有抽象类才可以有抽象方法。
(4).无法创建abstract类的实例,只能被继承无法实例化。

重载(overload:是提供一种机制, 相同函数名通过不同的返回值类型以及参数来表来区分的机制。
重写(override):是用于重写基类的虚方法,这样在派生类中提供一个新的方法。

13.运算符重载(一元、二元、比较运算符能够重载)

 例:

C#学习 入门到放弃_第5张图片

14.接口:I 字母开头,默认是 public 的。

(1)接口实现:

(2)接口继承:如果一个接口继承其他接口,那么实现类就需要实现所有接口的方法 

15.定义命名空间:

使用命名空间:

16.正则表达式(还需要再看看)

C#学习 入门到放弃_第6张图片

附:

(1)^表示字符串的开头,但它还有另外一个含义。当在一组方括号里使用 ^ 时,它表示"非"或"排除"的意思

(2)一个数字 {x} 的意思是前面的字符或字符簇只出现x次 ;一个数字加逗号 {x,} 的意思是前面的内容出现x或更多的次数 ;两个数字用逗号分隔的数字 {x,y} 表示 前面的内容至少出现x次,但不超过y次

(3)特殊字符 * 与 {0,} 是相等的,它们都代表着 0 个或多个前面的内容 。最后,字符 + 与 {1,} 是相等的,表示 1 个或多个前面的内容 

17.文件的输入输出

18.特性(Attribute)
用于添加元数据。AttributeUsage、Conditional、Obsolete

19.反射(Reflection)指程序可以访问、检测和修改它本身状态或行为的一种能力

用途:

  • 它允许在运行时查看特性(attribute)信息。
  • 它允许审查集合中的各种类型,以及实例化这些类型。
  • 它允许延迟绑定的方法和属性(property)。
  • 它允许在运行时创建新类型,然后使用这些类型执行一些任务

20.属性(Property):通过访问器(accessor)声明可包含一个 get 访问器、一个 set 访问器,用于获取或设置属性的值。

附:抽象类可拥有抽象属性,但是这些属性应在派生类中被实现

21.索引器(Indexer):索引器定义的时候不带有名称,但带有 this 关键字

C#学习 入门到放弃_第7张图片

22.委托(Delegate)

声明:

-->(其实就是帮别人做事情的人)

23.事件(Event)

发布器:是包含事件和委托定义的对象。

                                                通过事件使用委托:--------->            在发布器类中的委托调用订阅器类中的方法处理事件

订阅器: 是接受事件并提供事件处理程序的对象。

C#学习 入门到放弃_第8张图片

24.泛型(Generic)

C#学习 入门到放弃_第9张图片

25.匿名方法

匿名方法是通过使用 delegate 关键字创建委托实例来声明的

C#学习 入门到放弃_第10张图片

你可能感兴趣的:(.net,c#)