前言
对C# 面试题笔试的总结。
面试题
【1】简述 private,protected,public,internal修饰符的访问权限。
private:私有成员。在类的内部才可以访问;
protected:保护成员。在该类的内部和继承类中可以访问;
public:公共成员。完全公开,没有访问权限;
internal:在同一命名空间内使用;
【2】写一条sql 语句:取出A表中31到第40记录(以自动增长的ID作为主键,ID可能不是连续的)。
//解法1:首先根据ID查询前30条数据(默认正序),然后正序查询不在这30条数据中的前10条数据。
select top 10 * from a where id not in (selct top 30 id from a);
//解法2:首先根据ID正序查询前30条数据,求出ID最大的数据ID,再查询ID>max(id),即获取到要查询的数据。
select top 10 * from a where id >(select max(id) from (select top 30 id from a) as a);
//解法3:使用row_number();
select * from (
select *, row_number() over(order by id) as rid from a where 1=1;
) as temp where rid>=31 and rid <=40;
【3】C#中的委托是什么?事件是不是一种委托?
委托可以把一个方法作为参数代入另一个方法。理解为指向一个函数的引用。
是,是一种特殊的委托
【4】三层架构分为哪三层?
数据访问层、业务层、表示层;
数据访问层:对数据进行增删查改;
业务层:与表示层进行业务处理;
表示层:与用户进行交互;
优点:分工明确、条理清晰、易于调试,易于拓展;
缺点:增加成本;
【5】什么是.NET
反射?
动态获取程序集信息。
【6】值类型和引用类型的区别?
值类型:数据存储分配在内存的栈上(由编译器自动分配释放);例如:结构(struct);
引用类型:数据存储分配在内存的堆上(有程序员分配释放);例如:类(class);
【7】索引的作用?它的优点缺点是什么?
作用:协助快速查询、更新数据表中的数据;
优点:
1.加快数据的检索速度;
2.加快表与表之间的连接;
3.减少查询中分组和排序的时间;
4.提高系统的性能;
缺点:
1.创建索引和维护索引随着数据量越大所需的时间越多;
2.占据物理空间大;
3.降低数据的维护速度;
【8】联表更新SQL语句:表 A 字段:ID、Name、Desc ,表 B 字段:ID、Name、A_ID、AName,B表的A_Id 是A表的外键,将A表的Name赋值给B表的AName。
update 表 B set B.AName=A.Name
from 表 B inner join 表 A on A.ID=B.A_ID