2024年5月6日发(作者:)

winform面试题2019

1、C#的委托是什么?其关键字是什么?怎么使用?

答:委托是C#中新加入的一个类型,可以把它想作一个和Class类似的一种类

型,和使用类相似,相当于回调函数;其关键字是delegate;使用一个委托时,需

要两个步骤,首先你要定义一个委托,就像是定义一个类一样;然后,你可以创建

一个或多个该委托的实例。

2、c#有没有Hashtable、HashMap?其作用是什么?

答:有hashtable,无hashmap,它是是根据关键码值(Key value)而直接

进行访问的数据结构。也就是说,它主要作用是通过把关键码值映射到表中一个位

置来访问记录,以加快查找的速度。

()和wait()有什么区别?

答:sleep()方法是将当前线程挂起指定的时间。

wait()释放对象上的锁并阻塞当前线程,直到它重新获取该锁。

4、什么是动态链接库,其优点是什么?

答:动态链接库英文为DLL,是Dynamic Link Library的缩写形式,DLL是

一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。其优点

大体说来,使用动态链接库可以共享代码、系统资源,可以隐藏实现的代码或底层

的系统例程、设计自定义控件。

5、winform中获取html网页信息有哪几种控件?

答:webbrowser、webrequest、webclient、socket。

6、已有一个方法say,形如:

namespace test class A public string say(){return"Hello World!";}

已编译成a.d11,请问如何在winform窗体中调用该DLL然后显示出Hello

World!,该如何实现??

答:第一种在vs中引用dll即,然后在类中引用命名空间using test,,

然后在实例化对象,A testa=new A();(());第

二种方式导入dll即[DllImport("")];,然后声明方法static extern string

say();然后直接调用即可 (say());。

有什么区别,第一种只能调用c#生成的dll,而第二种则可以调用第三方软件

生成的dll。

7、SendMessage和PostMessage的区别

答:PostMessage是异步的,SendMessage是同步的。PostMessage只把

消息放入队列,不管消息是否被处理就返回,消息可能不被处理;而SendMessage

等待消息被处理完了之后才回,如果消息不被处理,发送消息的线程将一直被阻塞。

8、webbrowser能应用在多线程方式下使用么?能在子线程创建吗?一般怎

么解决?

答:能在多线程中使用;不能在子线程创建;一般采用委托来解决,比如

MethodInvoker mi=new MethodInvoker(ergate);

"form 实例".BeginInvoke(mi);private void WebNevergate(){"form

实"."Webbrowser".Navigate(web_url);}