C#常见知识点(一)

学习自用,不定期更新常见、易考知识点,用于平时稳固,将来面试准备之用。

1、值类型引用类型什么区别?

   1.值类型(ValueType): 包括:数值类型,结构体,bool型,用户定义的结构体,枚举,可空类型。

   2.引用类型(ReferenceType): 数组,用户定义的类、接口、委托,object,字符串,null类型,类。

  3.值类型与引用类型区别:

      

2、C#   构造函数什么特点,何时被调用?

构造函数的功能主要用于在类的对象创建时定义初始化的状态.它没有返回值,也不能用void来修饰。

所有的类都至少包含一个构造函数。这些构造函数中可能有一个默认的构造函数,默认的构造函数没有参数,与类同名。

一个类只能有一个静态的构造函数,该构造函数不能有访问修饰符,也不能带任何参数。静态构造函数不能直接调用,只能在下述情况下执行:

(1)创建包含静态构造函数的类的实例时

(2)访问包含静态构造函数的类的静态成员时

C#中的接口和类

不同点:

不能直接实例化接口。

接口不包含方法的实现。

接口可以多继承,类只能单继承。

类定义可在不同的源文件之间进行拆分

抽象类是特殊的类,只是不能被实例化;除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普通类所不能的。抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们。

接口除了可以包含方法之外,还可以包含属性、索引器、事件,而且这些成员都被定义为公有的。除此之外,不能包含任何其他的成员,例如:常量、域、构造函数、析构函数、静态成员。一个类可以直接继承多个接口,但只能直接继承一个类(包括抽象类)。

抽象类和接口的使用:

1. 如果预计要创建组件的多个版本,则创建抽象类。抽象类提供简单的方法来控制组件版本。

2.如果创建的功能将在大范围的全异对象间使用,则使用接口。如果要设计小而简练的功能块,则使用接口。

3.如果要设计大的功能单元,则使用抽象类.如果要在组件的所有实现间提供通用的已实现功能,则使用抽象类。  

4.抽象类主要用于关系密切的对象;而接口适合为不相关的类提供通用功能。

抽象类(abstract)和接口(interface)的区别

抽象类可以有自己的实现,接口却仅有声明,可以有自己的静态数据字段;
java
C#中可以实现多个接口,却只能继承一个抽象类(或者非抽象类)(单继承,和c++的多继承不同);


 

C#之重载、重构、重写

  

【重载】

       提供了创建同名的多个方法的能力,但这些方法需使用不同的参数类型。

       特点:方法名必须相同,但参数类型或个数必须不同

       优点:在不改变原来方法的基础上,新增功能

【重构】

       调整程序代码,使其更符合面向对象规则,提高软件的扩展性和维护性。前提是不改变程序原有的功能

       特点:对代码的优化

    代码:比如现在我有两个类,一个是Cat,另一个是Dog,他们都有叫方法,如果我每个类都去写实现叫方法,就造成了代码的重复,怎么办那,可以把叫方法抽象出来,放到一个父类Animal中,让子类Cat、Dog去继承

【重写】

       多出现在多态里,父类里写一个virtual方法或abstract方法,子类通过override重写去实现父类的方法

子类对父类中虚方法的处理有重写(override)和覆盖(new),请说明它们的区别?

有父类ParentClass和子类ChildClass、以及父类的虚方法VirtualMethod。有如下程序段:
ParentClass pc = new ChildClass();pc.VirtualMethod(...);
如果子类是重写(override)父类的VirtualMethod,则上面的第二行语句将调用子类的该方法
如果子类是覆盖(new)父类的VirtualMethod,则上面的第二行语句将调用父类的该方法

stringString的区别

stringintC#定义的类型,而StringInt32.net类型即是CTS类型; string  .NET 框架中 System.String 的别名。string在编译的时候会转化为String


能用foreach遍历访问的对象需要实现 _IEnumerable___接口或声明_GetEnumerator_方法的类型。

面向对象的思想主要包括什么?

 封装:用抽象的数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据类型内部。 
继承:子类拥有父类的所有数据和操作。

多态:一个程序中同名的不同方法共存的情况。有两种形式的多态– 重载与重写。  总精简的描述:通过继承实现的不同的对象,实现相同的方法,表现出不同的行为,称之为多态



    

  • 5
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值