- 2
- 0
- 约1.85万字
- 约 15页
- 2020-04-19 发布于浙江
- 举报
C#面试题精选
接口与抽象类
抽象类:
1)抽象类是一种不能直接实例化而必须从中继承的类,抽象类实例由它的子类给出,抽象类可以提供实现,也可以不提供实现,
2)抽象类可以定义非静态的类变量,抽象类成员可以是私有的,受保护的,公有的
3)抽象类是单继承(子类只能继承一个抽象类);
4)抽象类主要用于关系密切的对象,若设计大的功能单元,则使用抽象类; 抽象类用于共性;
5)在抽象类中加入一个方法,那么它的子类就同时有了这种方法;
接口:
1)接口不提供任何实现,接口的实例是实现接口的类给出的
2)接口成员不能包含常数,字段,运算符,实例构造函数,析构函数,静态成员等,只能是方法,属性,事件,或索引器,且其成员都是共有的
3)多继承,多态性,类或结构可以继承多个接口;
4)适合于为不相关的类提供通用功能;接口用于规范
5)在接口中加入方法,那实现它的类就必须重新编写;
装箱和拆箱
装箱和拆箱是值类型和引用类型之间相互转换是要执行的操作。?
装箱在值类型向引用类型转换时发生: object obj = 1;
2. 拆箱在引用类型向值类型转换时发生
装箱操作和拆箱操作是要额外耗费cpu和内存资源的,所以在c# 2.0之后引入了泛型来减少装箱操作和拆箱操作消耗。
return,break,continue
1、return 语句的作用
?????从当前的方法中退出,返回到该调用的方法的语句处,继续执行。
?? 2、break语句的作用
????? 用在循环体内和switch语句体内;用在循环体内表示跳出本层循环体,从而提前结束本层循环;用在switch中表示跳出跳出switch语句体。
3、continue语句作用
其作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环的条件判定。
用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系
目前.Net平台下的B/S开发框架基本可以分为三大类:基于控件和页面事件驱动思想的Web Forms;基于模型、视图、控制器的MVC模式;综合了Web Forms和MVC的一些特点而产生的框架;
表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)
表现层负责与用户交互;业务逻辑层就是指派数据访问层进行表现层请求的逻辑性的业务处理,数据访问层对数据库进行增删查改。
优点: 分工明确,条理清晰,易于调试,而且具有可扩展性。
缺点: 增加成本。
简述数据库连接池
连接池基本的思想是在 系统初始化的时候,将数据库连接作为对象存储在内存中,当用户需要访问数据库时,并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接对象。使用完毕后,用户也并非将连接关闭,而是将连接放回连接池中,以供下一个请求访问使用。而连接的建立、断开都由连接池自身来管理。同时,还可以通过设置连接池的参数来控制连接池中的初始连接数、连接的上下限数以及每个连接的最大使用次数、最大空闲时间等等。也可以通过其自身的管理机制来监视数据库连接的数量、使用情况等
连接池为每个唯一的连接字符串创建;
连接池一旦创建,直到活动进程终止时才会被毁坏
C# (Winform)利用委托跨线程界面交互问题
窗体上的控件只允许创建它们的线程访问,也就是主线程,若非主线程访问则会发生异常,可借助于控件的InvokeRequired属性判断该控件目前是否被主线程访问,如果是则返回false;在利用Invoke方法找到主线程(在哪个控件上调用了Invoke,就用那个控件所在的线程处理委托方法,Invoke的两个参数分别是:委托、委托的方法需要的参数),让主线程访问控件的方法。
创建一个类,类里声明委托及委托对象,在类的方法中调用委托对象
class?TestClass
{
//声明一个delegate(委托):testDelegate,该类型可以搭载返回值为空,参数只有一个 (long型)的方法。??
public?delegate?void?testDelegate(long?i);??
//声明一个testDelegate类型的对象。它可以搭载N个方法。??
public?testDelegate?mainThread;??
public?void?testFunction()??
?{??
long?i?=?0;?
? while(true)??
{??
i++;??
mainThread(i);? //调用委托对象??
Thread.Sleep(1000);?//线程等待1000毫秒
}}}
在UI控件的事件中创建TestClass类并为委托搭载方法,创建无参线程
pri
原创力文档

文档评论(0)