c#
lvfeng19806001
c/s,c#......
展开
-
ConcurrentDictionary<TKey,TValue> 等线程安全集合类
c#中使用的List<T>,Dictionary<TKey, TValue>等常用的集合,如果需要在多线程中有写操作,会线程不安全,需要加锁(lock),有时自己写的,可能会有性能问题或bug。c#中对这些集合类,都实现了相应的线程安全的集合。比如:ConcurrentBag<T> 表示对象的线程安全的无序集合。可以用来替换List<T>ConcurrentDictionary<TKey, TValue> 表示可由多个线程同时访问的键值对原创 2022-05-27 11:34:55 · 392 阅读 · 0 评论 -
Environment.CurrentDirectory和AppDomain.CurrentDomain.BaseDirectory使用心得
最近在封装写log基类,要获取exe所在目录或插件dll所在目录,总结如下:1:如果是插件dll,即是用软件的exe调用的插件,要获取dll的路径,需要用:System.Reflection.Assembly.GetExecutingAssembly().Location;2:获取当前exe的路径,原来用的是Environment.CurrentDirectory,发现如果通过cmd命令调用此exe,如果不是在此exe目录调用,而是通过.\aaa\xxx.exe调用时,获取的就不是exe的路径。原创 2022-04-25 11:33:24 · 538 阅读 · 0 评论 -
c#注释规范
公司代码整改,特将c#注释规范总结下:c#注释一般如下:1:单行注释,用//开始。//这是一个注释2:块注释,/**//*注释内容,可以随意换行*/3:XML注释方式(Extensible Markup Language 可扩展标记语言),///开始 /// <summary> ///这是一个加法求和方法 /// </summary> /// <param name="原创 2022-04-16 15:41:15 · 4330 阅读 · 0 评论 -
c#添加默认类注释模板
找到vs所使用的模板类:D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\ItemTemplates\CSharp\Code\2052\Class找到Class.cs在class1.cs的头部加入注释模板using System;using System.Collections.Generic;$if$ ($targetframeworkversion$ >= 3.5)using原创 2022-04-16 15:07:06 · 931 阅读 · 0 评论 -
float类型总结
float类型有效精度只有7位,所以尽量用double。可以参考下面这个地址,有详细的介绍https://blog.csdn.net/albertsh/article/details/92385277原创 2021-04-21 14:59:39 · 159 阅读 · 0 评论 -
C# FileSystemWatcher使用说明
1.常用的几个基本属性:(1) Path:设置要监视的目录的路径。(2) IncludeSubdirectories:设置是否级联监视指定路径中的子目录。(3) Filter:设置筛选字符串,用于确定在目录中监视哪些类型的文件。例子:“*.zip|*.rar”(4) NotifyFilter:设置文件的哪些属性的变动会触发Changed事件,同时监控多个属性变动可以按“或”组合。(默认值为 NotifyFilter.LastWrite | NotifyFilter.FileName ...原创 2021-03-20 15:43:03 · 331 阅读 · 0 评论 -
epub格式电子书剖析 .
epub格式电子书遵循IDPF推出的OCF规范,OCF规范遵循ZIP压缩技术,即epub电子书本身就是一个ZIP文件,我们将epub格式电子书的后缀.epub修改为.zip后,可以通过解压缩软件(例如winrar、winzip)进行浏览或解压处理。一个未经加密处理的epub电子书以三个部分组成,其文件结构如下图所示: 1、文件:mimetype 每一本epub电子转载 2013-04-09 14:15:28 · 1974 阅读 · 0 评论 -
读取文件真实格式
获取文件的真实类型,参考下面代码。但不知为何,zip和office2007的文件获取到得一样。 private string CheckTrueFileName(string fileName) { System.IO.FileStream fs = new System.IO.FileStream(fileName, System.IO.Fi原创 2013-03-22 18:26:49 · 1480 阅读 · 0 评论 -
winform 关于comboBox控件的SelectedIndexChanged
问题:SelectedIndexChanged控件,初始加载的时候总会进去两次,SelectedValue 值总为System.Data.DataRowView。原因:最后才发现自己是先绑定数据源,后设置控件ValueMember和DisplayMember属性。解决办法:正确的做法是先设置这两个属性,后绑定数据源。原创 2013-03-11 12:13:40 · 2197 阅读 · 0 评论 -
winform限制软件次数
1.创建注册表文件:打开记事本,输入一些内容:REGEDIT4[HKEY_CURRENT_USER/Software/MyRegDataApp]"UseTime"="10"保存为“RegData.reg”2.创建winform项目引用名称空间1using Microsoft.Win32 ;在Form中激活load事件,并添加代码1Re转载 2012-10-24 11:35:15 · 1670 阅读 · 0 评论 -
Datatable行转列
c#转换类____行列转换,新增行(基于DataTable)using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebCo转载 2012-04-13 18:15:39 · 4202 阅读 · 1 评论 -
关于c#中的问号
一个问号---用于给变量设初值的时候,给变量(int类型)赋值为null,而不是0!两个问号---用于判断并赋值,先判断当前变量是否为null,如果是就可以赋一个新值,否则跳过!比如: public int? para;//public in原创 2011-08-01 13:02:19 · 494 阅读 · 0 评论 -
马赛克效果
<br /> /// <summary> /// 马赛克效果 ///原理:确定图像的随机位置点和确定马赛克块的大小,然后马赛克块图像覆盖随机点即可. /// </summary> /// <param name="m_Iimage"></param> /// <param name="val">分割成val*val像素的小区块</param> public Image MaSaiKe(I转载 2011-04-12 09:24:00 · 485 阅读 · 0 评论 -
c#实现通过出生日期计算岁,月,天
///通过生日和当前日期计算岁,月,天 /// ///生日 ///当前日期 ///岁 ///月 ///天 privatevoid GetAgeByBirthday(DateTime birthday, DateTime now,outint year,outint month, outint day) { //生日的年,月,日 int原创 2010-09-21 17:40:00 · 5285 阅读 · 0 评论 -
c#Treeview拖拽功能
c# winform TreeView控件中实现拖拽的功能 曾经做过一个Windows Form,需要在TreeView空间中实现拖拽的功能,首先我想介绍一下Windows Form中的TreeView控件:使用 Windows 窗体 TreeView 控件,可以为用户显示节点层次结构,就像在 Windows 操作系统的 Windows 资源管理器功能的左窗格中显示文件和文件夹一样。树视图中的各个节点可能包含其他节点,称为“子节点”。可以按展开或折叠的方式显示父节点或包含子节点的节点。通过将树视图的转载 2010-08-30 16:59:00 · 10776 阅读 · 2 评论