.NET概念总结

  .NET概念总结

1.NET Frameword                    .NET框架

2.CLR                              公共语言运行时

3.MSIL                             微软中间语言

4.CLS                              公共语言规范

5.CTS                              通用类型系统

.NET框架具有两个主要组件组成:公共语言运行时和框架类库。公共语言运行时是.NET框架的基础。框架类库是一个综合性的面向对象的可重用类型集合,利用它可以开发包括传统命令或者WinForms应用程序到基于ASP.NET所提供的最新应用程序。

 

1.       System:“树”的根,此命名空间包含.NET框架类库中的其他所有命名空间。

2.       System.Data用于访问ADO.NET,

3.       System.Windows.Forms用于开发Windows应用程序,引入这个命名空间才能使用WinForms的控件和各种特性,例如我们曾使用的MessageBox,必须引入这个命名空间

4.       System.Collections.Generic可以使用泛型。

5.       System.Net可以对网络协议进行编程。

6.       System.Security提供系统的安全控制功能。

7.       CLR是所有.NET应用程序运行时的环境,是所有的.NET应用程序都要使用的编程基础。

8.       CLR中有两个主要组件,CTS是通用类型系统,CLS是公共语言规范。

9.       命名空间用于组织类和其他内容提供一个逻辑上的层次结构。

类:

面向对象中的类描述了一组相似对象的共同特性,是具有相同特征和共同行为的一组对象的集合。

类的属性:

对象所拥有的特征,在类中表示时称为类的属性。

类的方法:

对象执行的操作称为类的方法。

类和对象的关系:

1.       由对象归纳为类,是归纳对象共性的过程。

2.       在类的基础上,将状态和行为实体化为对象的过程称为实例化。

 

定义类中的成员时,如果不写访问修饰符,则默认是:private

定义一个类不写访问修饰符,怎默认是 internal

只读属性,只包含get访问器 ;只写属性,只包含set访问器 ;读写属性,包含get和set

 

封装的好处:

1.       避免使用非法数据赋值 2.保证数据的完整性 3.避免类内部发生修改,导致整个程序的修改。

方法重载:

类中两个以上的方法,取的名字相同,只要使用的参数类型或者参数个数不同

C#属性可以利用get取得字段的值,set可以设置字段的值,在访问器中可以对数据进行约束

静态方法

实例方法

Static关键字

不需要static关键字

类名调用

实例对象调用

可以访问静态成员

可以直接访问静态成员

不可以直接访问实例成员

可以直接访问实例成员

不能直接调用实例方法

可以直接调用实例方法和静态方法

调用前初始化

实例化对象时初始化

 

 

 

 

 

 

 

 

使用构造函数请注意以下几个问题:

1.       一个类的构造函数名通常与类名相同。

2.       构造函数没有返回值。

3.       一般情况下,构造函数总是public类型的。

4.       在构造函数中不要对类的示例做初始化以外的事情。不要尝试显示的调用构造函数,也就是直接去调用。

enum:定义枚举类型的关键字   struct:定义结构类型的关键字  gender:性别

enum它表示一组有限的值,对可能的值进行约束。

例如:

public enum Genders

{                                                      定义一个枚举

      Mail, Female

}

private Genders gender;

public Genders Gender

{

       get{return gender;}

 

结 构

 

 

不同点

引用类型

值类型

可以被继承

不能被继承

可以有默认构造函数

不可以有默认构造函数

可以添加无参的构造函数

可以添加构造函数,但他们必须带参数

创建对象必须使用new

创建对象可以不用new

结构中给字段赋值是错误的

类中可以给字段赋值

相同点

都可以包含字段、方法

都可以实现接口

  

 

 

 

 

 

 

 

 

 

 

 

 

     set{gender=value;}

}

使用枚举好处:

1.       枚举可以使代码更易于维护,有助于确保给变量指定合法的、期望的值。

2.       枚举使代码更清晰,允许描述性的名称表示数据,使用时直观方便。

把值类型转换成引用类型的过程称为装箱,反过来由引用类型转换为值类型称为拆箱。

值类型:int、long、float、char、bool、enum、struct

引用类型:基类(System.Object)string、class、interface、int[],string[]

Hashtable  哈希表   collections  收集、采集    generic  总称的

使用ArrayList、Hashtable时需引用 using System.Colletions

定义一个List<T>泛型集合的方法如下:

1.List<Student> students = new List<Student>();

“<T>”中的T可以对集合的元素类型进行约束,T表明集合中管理的元素类型。

定义一个Dictionary<K,V>泛型集合的方法如下:

2.Dictionary<String,Student> students = new Dictionary<String,Student>();

<K,V>中的K表示集合中的Key的类型,V表示Value的类型

泛型的重要性主要体现在以下几点:

1.       解决了很多繁琐的操作问题,例如传统的集合中获取元素需要大量的类型转换,不易控制程序的异常,而泛型集合无须这些类型的转换,使我们编程更加便捷。

2.       提供了更好的类型安全性,在实际练习中,我们能体会到,泛型对于类型的约束十分严格,它可以控制我们在集合中对于不同类型的对象的胡乱使用,从而保证程序类型的安全。

3.       CLR可以支持泛型,这样使得整个.NET平台都能够使用泛型。

泛型集合可以作为类中的一个属性,使用泛型集合必须实例化。

C#中Main()方法有4种形式:

1.static void Main(string[]args){}               2. static int Main(string[]args)[]

3.static void Main(){}                        4. static int Main(){}

               

修 饰 符

类 内 部

子 类

其 他 类

public

可以

可以

可以

private

可以

不可以

不可以

protected

可以

可以

不可以

 

 

 

 

 

继承的价值

1.       继承模拟了现实世界的关系,OOP中强调一切皆对象,这符合我们面向对象编程的思考方向。

2.       继承实现了代码的重用,合理地使用继承,会使我们的代码更加简洁。

3.       继承使得程序结构清晰,子类和父类的层次结构清晰,最终的目的是使子类只关注子类的相关行为和状 

态,无须关注父类的行为与状态。例如,学员只需要管理学号、爱好、这种属性,而公共的姓名、年龄、性别

属性交给父类管理。

(一)   继承必须符合 is a 的关系,被继承的类称为父类或者基类,继承其他类的类称为子类或者派生类。

(二)   继承机制很好地解决了代码复用的问题。

(三)   子类继承父类的成员,并且可以拥有自己特有的成员。

(四)   被protected访问修饰符修饰的成员允许被其子类访问,而不允许其他非子类访问。

(五)   Base关键字可以用于调用父类的属性、方法、构造函数。

(六)   继承具有传递性,如果classA:B; classB:C,则A也可以访问C的成员。

(七)   C#中的继承具有但根性,一个类不能够同时继承自多个父类。

(八)   被sealed关键字修饰的类称为密封类,密封类不能被继承。

(九)   在子类中,如果不使用base关键字来显示调用基类构造函数,则将隐式调用默认的构造函数

(十)使用子类构造函数的每种情况必须明确声明,而不能期望自动调用父类对应版本的构造函数。

Virtual    虚拟的    override    撤销推翻    abstract    抽象的

委托:

委托是对方法的引用,C#中的委托同时也是类型安全的。

委托要求方法的实现和委托必须具有相同的参数类型,即相同参数个数和相同数据类型。

委托定义就是定义一个封装特定参数类型和返回值类型的方法体(静态方法或实例方法)的数据类型。其语法为:

[访问修饰符] delegate 数据类型 委托名(参数列表)

(一) 多态是指两个或多个属于不同类的对象,对于同一个消息(方法调用)作出不同响应的行为方式。

(一)使用抽象方法和虚方法都可以实现多态性。

(二)抽象方法是一个未实现的方法,它用abstract关键字修饰,含有抽象方法的类必然是抽象类。

(三)面向对象的三大特性是 封装、继承、多态。

抽象类与接口

没有实现的方法称为抽象方法,包含抽象方法的类称为抽象类。如果一个抽象类中的方法

都是抽象的,则可以定义成接口,接口本身不提供它所定义的成员的实现。

 

抽象类是派生类的基础。通过不实现或部分实现,这些抽象类用于创建模板,以派生出其他类型。如果要将一个类指定为抽象类,则必须使用abstract 关键字,声明抽象方法和抽象类语法如下:

abstract  class 类名

{

       [访问修饰符] abstract 返回类型 抽象方法名(参数列表);

       类的其它内容;

}

派生类如果要实现基类的抽象方法,必须使用override 关键字

抽象类不能实例化对象

 

接口定义了其派生类要实现的一系列方法,而它自己并不能实现这些方法,一旦定义了一个接口,许多类都可以实现它,而且一个类可以同时实现多个接口,接口不能实例化。

[访问修饰符]  interface  接口名

{

       //接口的主体,一般为抽象方法

}

C#面向对象只允许同时继承一个类,但可以同时实现多个接口。

当一个类既继承另一个类,又实现多个接口时,冒号后面首先是 基类,然后是接口,接口之间没有次序要求

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值