.net 面试题
2021-03-14 本文已影响0人
我不说你不懂_f0c6
1.<%# %> 和 <% %> 有什么区别?
答:<%# %>表示绑定的数据源
<%%>是服务器端代码块
2.重载与覆盖的区别?
答:1、方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个
类中方法之间的关系,是水平关系
3、覆盖只能由一个方法,或只能由一对方法产生关系;方法的重载是多个方法之
间的关系。
4.C# Action<T>和Fun<TResult>
二者的区别
Action只能委托必须是无返回值的方法 --void
Fun只是委托必须有返回值的方法 not void
泛型Action委 托表示引用一个 vod返回类型的方法。 因为这个委托类存在不同的变体,所 以可
以传递至多 16种不同的参数类型。
5.c#的abstract和virtual的用法和区别
抽象类:
1)、抽象类不能被实例化,只能被继承。
2)、抽象类的子类必须实现每个抽象方法。
3)、抽象类里面除了可以有抽象方法以外,也可以有普通的方法。
4)、抽象类的构造函数可以省略,编译器会自动加上,但是不能是一个抽象方法,而只能是一个普通的构造函数。
抽象类不可以直接实例化,他可以有n个(n>=0)抽象方法,这些抽象方法子类必须实现。
virtual类
1、声明了virtual的方法无需去改动类的声明,他只在此方法上起到影响。
2、只有virtual的方法可以被子类override。
3、子类可以不ouverride父类的virtual方法,这种情况下他就像普通的父类方法一样。
小结:简单概括一下,virtual关键字就是告诉子类,此方法可以被override,但非强制
6. [数据库 查询第31-40行数据,ID不连续]
1.select top 10 * from A where ID not in (select top 30 ID from A)
2.select * from (select * ,row_number() over(order by id) as num
from A) as a where a.num between 31 and 40;
oracle写法:
select * from (select row_num as rid,* from A where rid<=40) t1 where
t1.rid>=31