技巧积累
- 导出数据到excel表格,数字格式的字符串会被自动转换为科学计数,方法是在字符串前面加上“‘”,可解决问题。更新中。
- 文件下载:WEB中下载文件时应使用返回文件流的方式,不要直接使用文件的链接!这样做的好处有:1.特殊字符不会引起程序异常;2.下载文件可以在服务器端进行控制、监控;下载文件的通用方法见图

-
C# 中科学计数的问题
比较的数据会自动转换为科学技术,输出时也会是科学技术。可用ToString("format"),进行控制。
如double d = 3490825.45634;
string s = d.ToString( "f2 "); - Process.Start(文件),可显示文件。
-
显示星期几:Datetime date=DateTime.Now;date.ToString("dddd",new Culture("zh-cn"));dddd 周中某天的完整名称
- GC.Collect()主动的垃圾回收
- Thread.CurrentThread.CurrentUICulture获取程序的当前区域性(本地化相关).
- 本地化语言问题:Resource1.resx文件,可以定义字符串资源.
.net解析资源的步骤.net 资源文件名(这里是Resource1.resx)由根名称(即Resource1),本地语言名称(默认情况下还没有)及扩展名组成,在读取资源时,资源管理器会根据当前环境决定需要的本地语言名称,例如英语,然后试图以全名读取资源,美国英语的本地名称为en-US(语言名称可以从MSDN中查询CultureInfo信息得到),那么资源全名为Resource1.en-US.resx,如果存在该文件,则载入该文件作为资源文件,如果没有则使用默认值Resource1.resx,确定好资源文件后开始查找指定的资源(例如String1),如果在本地资源文件中没有找到,则向上查找上一级的本地资源文件,最终找到根名称Resource1为止.
- http://www.cnblogs.com/xumingxiang/archive/2012/04/14/override_new.html 重写和覆盖(new关键字)
- Dns类提供简单的域名解析功能
1 string hostName = Dns.GetHostName(); 2 IPAddress[] ipAddressList = Dns.GetHostEntry(hostName).AddressList;
- [MethodImpl(MethodImplOptions.Synchronized)]标示只能有一个线程执行该方法
- WeakReference若引用,即使被引用,也可以被GC回收.WeakReference声明的引用Target属性可以获取真是引用类型.
- Activator包含特定的方法,用以在本地或从远程创建对象类型,或获取对现有远程对象的引用。此类不能被继承。Activator.CreateInstance(Type),可创建type类型的实例
- Interlocked.Increment() 实现数的原子性加减(多线程)
- 熟悉Windows Form编程的读者应该都知道,WinForm空间的基类Control(System.Windows.Forms.Control)都实现了System.ComponentModel.ISynchronizeInvoke接口,而Control对ISynchronizeInvoke的实现就是为了解决Control的操作必须在创建Control线程的问题,ISynchronizeInvoke定义Invoke和BeginInvoke方法方面我们以同步或者异步的方式操作Control
- 循环开辟新线程传参数问题:后两种方法都可以.
foreach (var item in channelList) { //存在参数问题 //ThreadPool.QueueUserWorkItem(delegate { // item.DoSomething(); // Console.WriteLine(DateTime.Now); //}); ThreadPool.QueueUserWorkItem((s) => { (s as IContract).DoSomething(); Console.WriteLine(DateTime.Now); }, item); } Array.ForEach(channelList.ToArray<IContract>(), delegate(IContract channel) { ThreadPool.QueueUserWorkItem(delegate { channel.DoSomething(); Console.WriteLine(DateTime.Now); });
- OledbSql操作Access数据库的一点发现,不确定是不是绝对的.
- 以日期为例,存储日期为null值时,不能直接给CommandParamater赋null值,要用system.DbNull.Value.
- 读取为null的值时,强制转换为可控类型也是有问题的.要先判断是否为null.用IsNull判断下,再进行下一步的处理.
- 获取Windows 管理规范中的操作类,可以获取和设置系统的硬件信息.如ManagementClass wmi = new ManagementClass("Win32_NetworkAdapterConfiguration");参考:http://www.cnblogs.com/liushuijinger/archive/2013/02/19/2916663.html
- C# Release模式下生成单元测试会出现错误,要调到Debug模式才可以.
- SystemInformation.WorkingArea获取屏幕的工作区域的大小(以像素为单位)。SystemInformation 提供当前系统环境的有关信息。
- http://www.cnblogs.com/AaronYang/archive/2013/06/03/3113543.html NPOI
- WindowsIdentity.GetCurrent(),当前window用户
WindowsIdentity id = WindowsIdentity.GetCurrent(); WindowsPrincipal principal = new WindowsPrincipal(id); return principal.IsInRole(WindowsBuiltInRole.Administrator);
判断程序是否是以管理员身份运行。
- C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis 重新安装IIS以后,需要用aspnet_regiis.exe来注册.NET Framework
- WebClient HttpWebRequest HttpClient WebBrowser请求Web数据的方式
- ICSharpCode.SharpZipLib.Zip.ZipException: Entry size/stream size mismatch 异常,可能是要压缩的文件名字中包含空格
浙公网安备 33010602011771号