dataGridView使用技巧

DataGridView的几个基本操作:1、获得某个(指定的)单元格的值:dataGridView1.Rows[i].Cells[j].Value;2、获得选中的总行数:dataGridView1.SelectedRows.Count;3、获得当前选中行的索引:dataGridView1.CurrentRow.Index;4、获得当前选中单元格的值:dataGridView1.CurrentCell.Value;5、取选中行的数据(多选时用)string[]str=newstring[dataGridView.Rows.Count];for(inti;i<dataGridView1.Rows.Count;i++){   if(dataGridView1.Rows[i].Selected==true)      {          str[i]=dataGridView1.Rows[i].Ce...
开发笔记 开发笔记·2023-04-19

DllImport使用

DllImport使用1.Dll引用路径(1)exe运行程序所在的目录(2)System32目录(3)环境变量目录(4)自定义路径,如:DllImport(@"C:OJBinJudge.dll")2..DllImport用法[DllImport("User32.dll")]privatestaticexternIntPtrGetWindowDC(IntPtrhwnd); //找到User32.dll后直接调用其中的GetWindowDC()方法[DllImport("User32.dll")]privatestaticexternintReleaseDC(IntPtrhwnd,IntPtrhdc);[DllImport("Kernel32.dll")]privatestaticexternintGetLastError();...
开发笔记 开发笔记·2023-04-18

C# Linq GroupBy 使用 new 能按值比较进行分组吗?

C#中:list.GroupBy(m => new { m.Id, m.Name });如上,分组使用了new,也就是创建了对象,而我们知道对象是按地址比较的,是不是这种分组就起不到分组作用了?不是,照样能按Id和Name分组。new不会影响分组,仅仅是分组结果中Key是个对象。...

.NET 中使用资源文件,让类携带“附件”

.NET类,编译成DLL,通常是运行代码,但是如果需要额外的静态资源,比如CSS、JS、甚至是Excel文件。此时可以新建一个资源文件,将这些文件放进去。假如我们新建了一个Resource1的资源文件,放了一个Template.xlsx文件,要访问它,怎么办?using (Stream stream = new MemoryStream(Resource1.Template))非常方便。...

C# 中处理 JSON-使用 JavaScriptSerializer 更简单

C#中处理JSON-使用DataContractJsonSerializerC#中处理JSON-属性应public、无参数构造函数应该有C#中处理JSON-字符串属性值转义C#中处理JSON-使用JavaScriptSerializer更简单C#中处理JSON-生成的JSON属性顺序是怎样的?JavaScriptSerializer程序集System.Web.Extentions命名空间System.Web.Script.Serialization代码JavaScriptSerializer serialize = new JavaScriptSerializer();string jsonString = serialize.Serialize(obj);Serialize对应的还有一个方法Deserialize。JSON字符串JSON字符串如果为Null、Empty、非JSON格式异常。JSON字符串中有多余的属性忽略字符串中多余的属性。JSON字符串中有缺失的属性类中,这些缺失的属性,其值为构造函数中赋的值,如...

高效使用 C# 的属性

传统方法private string firstName;public string FirstName{    get    {        return firstName;    }    set    {        firstName = value;    }}如无特别设置,简化为:public string FirstName { get; set; }有特别设置,也可简写:private string firstName;pu...
代码星球 代码星球·2023-04-16

使用 HasValue、Value 判断和取 Nullable 的基础类型

法一、HasValue和Valueint? m = GetM();if (m.HasValue){    m.Value;}法二、!=null和Convertint? m = GetM();if (m != null){    Convert.ToInt32(m);}HasValue与!=null这两个都是一样的。HasValue是属性,可能有些人不能理解,这都null了,怎么还能使用属性呢?不出错吗?不出错,这是Nullable类型的特点。注意:上面是int?类型,不能对int类型用HasValue、!=null。Value与ConvertValue则要注意了,必须要有值,才能调用Value,这跟HasValue不一样。而Convert转换时,它是null也没问题,不会出错,结果是对应类型的默认值,int是0。使用哪种方法都可以,看个人习惯、风格、实际场景。...

.NET Color 为 null 的使用

在.NET中,Color对象是不能为null的,这跟DateTime一样。要让Color为null,得使用Color?。注意:虽然Color不可能为null,但是如果我们将Color==null比较,编译器并不会警告。但是,在使用时,我们是不能直接将Color?对象赋给Color的,怎样转换呢?Convert.ToColor()?,哈哈,这是不存在的,这样做:Color.FromArgb(BackgroundColor?.ToArgb() ?? 0)由于可为null,故不能直接.ToArgb(),要加问号,以获得非null时的Argb值。而??后面就是为null时的Argb默认值。...
代码星球 代码星球·2023-04-16

C# 使用 Select 代替 ConvertAll

比如我们要将List<int>转换成List<string>,如果用 ConvertAll,方法如下:ids.ConvertAll<string>(new Converter<int, string>(m => m.ToString()));有点麻烦,如果用Select,就简单多了,也好理解:ids.Select(m => m.ToString().ToList()如果没有出现Select,请usingSystem.Linq。题外,数组中没有ToList,也是由于缺少usingSystem.Linq。...

使用 Dictionary 代替 List.Where,提高速度

在C#中,有一List,有上万条数据项,每个数据项,又是一个类,List.Where去查找符合条件的类,然后计算,由于不断地调用List.Where,整个时间耗时约2分钟。不能忍受该时间。由于每调一次List.Where,就去循环一次,所以考虑使用Dictionary来代替,Where中判断条件,写作key,需要输出的值写入value,存储在Dictionary中,原来List.Where的地方换成Dictionary.ContainsKey。改造后,整个时间只需要几秒。...

C# 正则表达式使用示例-替换

C#正则表达式使用示例-匹配C#正则表达式使用示例-替换本示例是提取出字符串中的航班代码(假设为两个字母+四个数字),然后为其加上超链接,链接到其他网站,以查询航班信息。returnRegex.Replace(s,"([A-Z]{2}[0-9]{4})","<ahref="https://www.xxx.com/s?word=$1"target="_blank">$1</a>",RegexOptions.Multiline|RegexOptions.IgnoreCase); C#正则表达式使用示例-匹配C#正则表达式使用示例-替换...

C# var 使用细节

C# 的var 可以代表多种数据类型,但不代表想怎样就怎样。var 类型由编译器决定,一旦决定后就固定下来varm=0;//m是int类型m="abc";//这里是错误的近似类型转换也不行byteb=150;varv=b;//byte类型,如果是varv=0;则为int类型MessageBox.Show(v+":"+v.GetType().ToString());//150:System.Bytev+=b;MessageBox.Show(v+":"+v.GetType().ToString());//44:System.Byte以上可以看出,即使+b 超出了255(byte 的最大值,最小值为0,总共256 个数),它也没有扩大v 的数据类型,而是沿用byte 的特性:值-256(注意是256,不是255),得44。说明var 只是简化书写,编译器一旦决定类型后,就不会改变,上述代码将var 改为byte 没什么区别,因为var 并不改变特性,只是简化书写方式。...
代码星球 代码星球·2023-04-16

C# 中处理 JSON-使用 DataContractJsonSerializer

C#中处理JSON-使用DataContractJsonSerializerC#中处理JSON-属性应public、无参数构造函数应该有C#中处理JSON-字符串属性值转义C#中处理JSON-使用JavaScriptSerializer更简单C#中处理JSON-生成的JSON属性顺序是怎样的?添加引用如果是.NET 3.5 则需要添加两个引用(注意是引用,不是命名空间):System.ServiceModel.WebSystem.Runtime.Serialization如果是.NET4.0 则只需要添加一个引用:System.Runtime.Serialization核心类using System.Runtime.Serialization.Json;using System.IO;using System.Text;namespace Cftea{    public class JsonHelper    {&n...

接口中如何使用泛型

publicinterfaceIData<T>{TData{get;set;}stringToXml();}publicclassSiteData:IData<Site>{publicSiteData{get;set;}publicstringToXml(){}}以上是一种形式,其实我们还可以继续在class是用泛型。classSampleClass1<T>:IBaseInterface1<T>{}...
代码星球 代码星球·2023-04-16

口中,可使用 static 吗?

不可以,static不属于接口的一部分,如下代码是错误的:interfaceI输出{staticstringToHtml(intcustomerId);}...
代码星球 代码星球·2023-04-16
首页上一页...45678...下一页尾页