1.开发windows服务程序,不应该在程序中调用windform相关的方法与类库,会产生未知的异常,windows服务中是可以产生日志文件的,会生成在安装服务的当前路径下面,比如服务为D:/MyService.exe ,那么日志就会出现在该文件夹,启动服务 net start 服务名
2.C#去除字符串末尾空格和回车 Replace("\n", "").Replace(" ", "").Replace("\t", "").Replace("\r", "");
3.C#的三种程序运行方式,1.控制台程序:在所有任务执行完成后会自行退出,但只要还存有一个线程没有执行完,便会一直执行下去。若没有在执行的其他任务,且主线程执行到了末尾,则自动结束
2.windows Server:以服务的方式运行程序,即便程序中所有任务已经执行完毕,也不会自动停止服务,除非手动关闭服务。
3.winform应用程序:执行的程序包含应用程序界面,跟windows server类似,结束程序需要手动进行关闭,即使没有其他线程执行任何任务。
4.实时修改Appsetting的值,解决Appsetting值修改成功后再次读取未更新的问题
public void ModifyAppsetting(string key, string value)
{ System.Configuration.Configuration config = System.Configuration.ConfigurationManager.OpenExeConfiguration(System.Configuration.ConfigurationUserLevel.None); config.AppSettings.Settings.Remove(key); config.AppSettings.Settings.Add(key,value); config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("appSettings");//此语句是让下次读取Appsetting时,重新从硬盘读取 }5.使用管理员权限运行程序(非手动)
程序集中右键属性-》安全性-》勾选《启用OnClick》->Properties中出现app.mainfest文件-》<requestedExecutionLevel level="asInvoker" uiAccess="false" />修改为<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />-》取消《启动OnClick》-》保存即可
6.计算分页总数算法 int totalPageNum = (totalRecord + pageSize - 1) / pageSize;
7.控制台等待退出
while (Console.ReadLine() != "quit")
{ Console.WriteLine(); continue; }8.泛型限制类型为int、double、byte等值类型的写法,以下做示例
public T Add<T>(int a,int b) where T:struct
{
T value = (T)(a+b);
return value;
}