.net 面试题

1.<%# %> 和 <% %> 有什么区别?

答:<%# %>表示绑定的数据源

<%%>是服务器端代码块

2.重载与覆盖的区别?

答:1、方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个

类中方法之间的关系,是水平关系

3、覆盖只能由一个方法,或只能由一对方法产生关系;方法的重载是多个方法之

间的关系。

4.C# Action和Fun

二者的区别
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

你可能感兴趣的:(.net 面试题)