C#脚本编写经验总结

为了快速的开发小软件,我利用C#中的动态编译做了一个“C#解释器”,当然它并不是解释执行的。

完了以后,编写了一些C#脚本,在此期间发现了一些在IDE中编程会忽略的知识,下面一一列举一下。

STAThread

一次编写脚本时,发现FolderBrowserDialog好像失效了,不能正常弹出。

后来发现,FolderBrowserDialog等控件实际是com组件,com组件只能运行在STA线程中。

解决方法有二:在Main函数上方加入[STAThread]标签,使主线程成为STA线程;或者在程序中new一个线程,并设置为STA线程,然后在其中使用FolderBrowserDialog。

命名空间和dll名称不对应的两处

.NET中的命名空间的名字,一般和dll名是相同的。

虽然可以不同,但是那样用很别扭,一般人也不会那样用。

我发现.NET中命名空间和dll名称不对应的有两处。

一是,命名空间System.Linq的代码有一部分存在于System.Core.dll中,比如Skip()方法。

二是,命名空间System.Xml对应的dll为System.XML。

第一处可以理解,第二处我感觉算是设计缺陷。

猜你喜欢

转载自www.cnblogs.com/fabao/p/9457979.html