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

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!" ;}

}

}

已编译成,请问如何在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);}