C#/.NET 基础学习

初识C#

  C#是微软公司发布的面向对象的、运行于.NET Framework之上的高级程序设计语言。与Java有着明显不同,借鉴Delphi的特点,与COM(组件对象模型)直接集成,是微软公司 .NET windows网络框架的主角。
  C#是一种语言,.net是一个平台。C#不但可以开发基于.net的应用程序,也可以开发基于WinForm的程序。. net 是 Microsoft 的 XML Web 服务平台,XML Web 服务能使应用程序在 Internet 上传输和共享数据。
  
 特点:  
  1. 强类型语言,安全稳定;
  2. 事件驱动、完全面向对象的可视化编程语言;
  3. 便捷的面向组件编程的支持;
  4. VB简单的可视化操作和C++的高运行效率的结合;
  5. 托管代码和垃圾回收 (garbage collection);


  // .NET ~ C# ~ ASP.NET
  C#是.net平台下的一种开发语言,用于开发桌面应用程序
  asp.net是开发web程序的技术 
 .net是平台,该平台下包含很多技术如:asp.net  ado.net  winform  WCF

 .NET框架
 CLR:公共语言运行库,Common Language Runtime,.NET框架的核心组件,在操作系统的顶层并在运行期调用基类库(BCL, Base Class Library)管理程序的执行。
  · 内存管理机制
  · 垃圾回收机制GC (Garbage Collector)
  · JIT编译器
 CTS:公共类型系统,Common Type System,重要特性是所有类型都继承自公共的基类object。


基础学习

 4个基础命名空间

// .NET框架中的基础类库,用于实现一些基本的类。
using System; .NET应用程序中使用的大多数基本类型
using System.Collections.Generic; 处理集合的泛型类型
using Syatem.Text; 字符串处理和编码相关的类型
using System.Linq; 提供支持使用语言集成查询(LINQ)进行查询的类和接口,用于对集合进行查询

 基础概念
0. 结构 - 类
 struct 是值类型,隐式密封的、不能被继承,但可以实现接口。struct 成员默认是 public,有构造函数(实例、静态),没有析构函数,不允许字段初始化。
 class 是引用类型,单继承,可实现接口。class 成员默认是 private。
  · 数据 成员:字段、常量;
  · 函数 成员:属性、方法、事件、索引器、构造函数、析构函数、操作符;
1. 字段 - 属性 - 索引
 字段 - private,属性 - public
 属性 是指定的一组2个匹配的、称为访问器 (get 和 set) 的方法。属性是函数成员,访问器只能被隐式调用,执行代码,但不为数据存储分配内存。公有属性提供对私有字段的受控访问。
 索引 是一组 get 和 set 访问器,类似属性,索引是函数成员;索引通常用于访问多个数据成员,类似数组利用索引运算符;索引不能声明为 static。访问器只能被隐式调用,可以重载,参数列表必须不同。
  · 索引没有名称,但 this 是必须的;
  · 参数列表中至少必须声明一个参数;

  ReturnType this[参数列表] {
       get {...}
       set {...}
  }

2. 静态构造函数 - (普通的)实例构造函数
 实例构造函数初始化类的每个新实例,static 构造函数初始化类层次的项目。static 构造函数不能访问类的实例成员,通常用于初始化类的静态字段,静态构造函数被系统自动调用。静态字段先于实例成员被初始化,类只能有一个 static 构造函数,不能带参数、不能有访问修饰符、也不能使用 this 访问器。
  [1]. 构造函数中不能调用虚方法;
  [2]. ;
  [3]. ;
3. 继承
 单继承。
 a. 重载:同一个类内的函数,函数名相同、参数列表不同;
 b. 重写(覆盖):父子类之间的函数,签名相同、返回类型相同;父类用 virtual 标识,子类用 override 标识;
 c. 隐藏:默认或通过 new 显式隐藏。base.数据成员/函数名 显式访问被隐藏的成员。
     · 字段:名称相同,类型相同; 
     · 函数:签名相同(函数名、参数列表(个数、顺序、类型、修饰符));
4. 抽象类 abstract - 接口 interface
 a. 抽象类可以给出某些成员的一些实现,接口不能包含成员实现;
 b. 抽象类的抽象成员可以被子类部分实现,接口的成员必须被实现类全部实现;
 c. 一个类只能继承一个抽象类(类单继承),但是可以实现多个接口;
 d. 类是对对象的抽象,抽象类是对类的抽象,接口是对行为的抽象
 e. 从设计角度,抽象类和接口设计的思维过程不同(相反):
   抽象类 - 自底向上,接口 - 自顶向下;
  - 接口 -
 引用类型,接口可以继承接口,类和结构可以实现接口。接口允许访问修饰符 public、protected、internal、private,接口成员不允许访问修饰符,默认 public static。接口声明不能包含数据成员,只能包含 属性、方法、事件、索引
 类 A 实现接口 IA,将类 A 的对象引用转换为接口 IA 的引用:
  a. 强制类型转换:IA ia = (IA)objA;但是若类 A 未实现接口 IA,则抛出异常。
  b. as 运算符:IA ia = objA as IA;若类 A 未实现接口 IA,返回 null、不抛出异常。
 实现接口的类可以从它的基类继承实现代码。类实现 2 个接口,2 个接口包含同名方法,类的单一实现就可以满足 2 个接口 或 显式实现每一个接口。同时可以分别获

  • 9
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值