.NET
文章平均质量分 62
lidandan2016
这个作者很懒,什么都没留下…
展开
-
C#: byte[] 转换16进制字符串
1.byte[] 转换16进制字符串 1.1 BitConverter方式var str = DateTime.Now.ToString();var encode = Encoding.UTF8;var bytes = encode.GetBytes(str);var hex = BitConverter.ToString(bytes, 0).Replace("-", string.Em...转载 2018-06-26 20:01:52 · 3669 阅读 · 0 评论 -
c#:类的继承中Abstract 、Virtual和Override的使用
public abstract class Person { private string name; public Person(string name) { this.name = name; } public abstract void speaking(); p原创 2017-12-29 15:42:21 · 1415 阅读 · 1 评论 -
c#: 泛型接口、泛型方法
泛型可以自定义泛型接口、泛型类、泛型方法、泛型事件、泛型委托。1>自定义泛型接口和普通接口一样,一个泛型接口通常也是与某些对象相关的约定规程。泛型接口的声明如下:interface [接口名]{[接口体]}在c#中,通过尖括号“。一般来说,声明泛型接口与声明非泛型接口遵循相同的规则。泛型接口定义完成之后,就要定义此接口的子类。定义泛型接口的子类有以下两种方法。原创 2018-01-03 16:29:17 · 15652 阅读 · 1 评论 -
c#:sort在非泛型类ArrayList,泛型类List<>中的用法
例1、string数组排序static void Main(string[] args) { string[] s = { "a", "A", "-1", "1a", "2B", "AB", "b", "B" }; //Array.Sort(s, (a, b) => string.Compare(a, b, StringComparison.OrdinalIgnoreCase原创 2018-01-02 15:09:13 · 1442 阅读 · 0 评论 -
c#:hashtable用法
static void Main(string[] args){ Hashtable openWith = new Hashtable(); openWith.Add("txt", "notepad.exe"); openWith.Add("bmp","paint.exe"); openWith.Add("dib","paint.exe"); openWi原创 2018-01-03 10:07:51 · 1940 阅读 · 0 评论 -
c#:StringComparison枚举
public enum StringComparison {CurrentCulture,CurrentCultureIgnoreCase,InvariantCulture,InvariantCultureIgnoreCase,Ordinal,OrdinalIgnoreCase}CurrentCulture 使用区域敏感排序规则和当前区域比较字符串。 Cur转载 2018-01-02 12:18:18 · 656 阅读 · 0 评论 -
C#的配置文件App.config使用总结
应用程序配置文件是标准的 XML 文件,XML 标记和属性是区分大小写的。它是可以按需要更改的,开发人员可以使用配置文件来更改设置,而不必重编译应用程序。配置文件的根节点是configuration。我们经常访问的是appSettings,它是由.Net预定义配置节。我们经常使用的配置文件的架构是象下面的形式。先大概有个印象,通过后面的实例会有一个比较清楚的认识。下面的“配置节”可以理解为转载 2017-12-18 14:33:10 · 14691 阅读 · 2 评论 -
c#中抽象类(abstract)和接口(interface)的相同点跟区别
相同点:1、都可以被继承2、都不能被实例化3、都可以包含方法声明4、派生类必须实现未实现的方法区别:1、抽象基类可以定义字段、属性、方法实现。接口只能定义属性、索引器、事件、和方法声明,不能包含字段。2、抽象类是一个不完整的类,需要进一步细化,而接口是一个行为规范。微软的自定义接口总是后带able字段,证明其是表述一类“我能做。。。”3、接口可以被多重实现,抽象类只能被转载 2017-12-18 12:54:22 · 2422 阅读 · 0 评论 -
C#中IEnumerable、ICollection、IList、List之间的区别
首先我看看 IEnumerable:// 摘要: // 公开枚举器,该枚举器支持在指定类型的集合上进行简单迭代。 // // 类型参数: // T: // 要枚举的对象的类型。 [TypeDependency("System.SZArrayHelper")] public interface IEnumerable : IEnumerable {转载 2017-12-15 18:47:41 · 1042 阅读 · 0 评论 -
c#:线程同步
在C#里面用于实现线程同步的常用类有如下几类:1、Mutex类(互斥器),Monitor类,lock方法 2、ManualResetEvent类,AutoResetEvent类(这两个都是由EventWaitHandle类派生出来的) 3、ReaderWriterLock类分析如下:1、ManualResetEvent类:ManualResetEvent 允许线程通过发信号原创 2018-01-05 16:50:58 · 2563 阅读 · 0 评论 -
C#: WinForm系列——DataGridView单元格文本自动换行
DataGridView是.NET开发中常用的控件,在开发中发现大文本数据显示时无法在界面上完全显示,以下是我的解决方法。(1)首先要保证单元格的为Text类型(2)在程序中加入以下的代码片段String str1 = "mac:192.168.0.121";String str2 = System.Environment.NewLine;String str3 = "rssi:(-59)";...原创 2018-06-26 15:12:42 · 9914 阅读 · 1 评论 -
C#: 浅拷贝与深拷贝区别
也许会有人这样解释C# 中浅拷贝与深拷贝区别:浅拷贝是对引用类型拷贝地址,对值类型直接进行拷贝。不能说它完全错误,但至少还不够严谨。比如:string 类型咋说?其实,我们可以通过实践来寻找答案。首先,定义以下类型:int 、string 、enum 、struct 、class 、int[] 、string[]代码如下:public enum my转载 2018-04-28 16:02:21 · 1239 阅读 · 1 评论 -
C#: "$"作用和用法
C#中$的用法:"$"是在C#6.0出现的一个新特性,其作用相当于对String.format()的简化。string.format()需要自己在字符串中写占位符,在后面跟上参数。如果要格式化的参数比较多,写起来就比较恶心。 而用$符号,写法就简洁多了,我们可以直接在字符串的相应位置协商自己想要替换的参数就好了。class Program { static void Mai...原创 2018-05-18 12:00:20 · 8308 阅读 · 3 评论 -
c#:“@”的作用和用法
“@”在看别人程序的时候偶尔看到,总结了一下两个用途1. 不常用,也不推介用的用法。 @关键字 可以作为标识符来使用,说白了,就是讲关键字变成非关键字。2.逐字字符串字面量,以@开头,后面是由引导包含的字符串。使用引导号包含的字符串的内容原样输出,而且他们能够跨越两行或更多行。因此,可以加入新行,制表符等,而不需要使用转义序列。唯一例外的情况是,为了显示双引号("),必须在同一行中使用两个双引号(...转载 2018-05-18 10:26:19 · 711 阅读 · 0 评论 -
C#: 关于Clone()方法的介绍
谈谈浅复制与深复制的问题:例如我有一个简单的类:class People{ public int _age; public string _name; public People(int Age,string Name) { _age = Age; _name = Name; }}常见的赋值语句,如:People Mi转载 2018-04-24 19:14:36 · 3226 阅读 · 0 评论 -
C#: ByteToString("x2")
1).转化为16进制。2).大写X:ToString("X2")即转化为大写的16进制。3).小写x:ToString("x2")即转化为小写的16进制。4).2表示输出两位,不足的2位的前面补0,如 0x0A 如果没有2,就只会输出0xA原创 2018-01-08 18:04:31 · 7643 阅读 · 0 评论 -
C#: IEnumerable
IEnumerable这个接口在MSDN上是这么说的,它是一个公开枚举数,该枚举数支持在非泛型集合上进行简单的迭代。换句话说,对于所有数组的遍历,都来自IEnumerable,那么我们就可以利用这个特性,来定义一个能够遍历字符串的通用方法.using System;using System.Collections.Generic;using System.Linq;using Syste原创 2017-12-15 18:36:48 · 4534 阅读 · 0 评论 -
c#:RadioButton控件与CheckBox控件的用法
一、用途1.RadioButton控件单选按钮,当与其他单选按钮成对出现时,允许用户从一组选项中选择单个选项。也就是说,当同一个容器中(Form、Panel、GroupBox、PictureBox等)存在两个以上的单选按钮时,只能有一个被选中。但不在同一个容器中的几组单选按钮彼此不关联,是可以有多个被选中的。2.CheckBox控件复选框,允许用户选择和清除关联选项原创 2017-12-14 14:54:03 · 3608 阅读 · 0 评论 -
c# 嵌套类
@1、 假如类A是类B的一个成员,那么类A就成为嵌套类,类B为类A的包容类@2、可以为嵌套类指定private访问修饰符,只有嵌套类才可以这样做。@3、嵌套类中的this成员指的是嵌套类的一个实例,而不是包容类。嵌套类要想访问包容类的实例,一个办法是显式传递包容类的实例,比如通过一个构造器或方法参数。@4、嵌套类能访问包容类的任何成员,包括私有成员。但包容类不能访问嵌套类的转载 2017-12-14 11:40:26 · 1607 阅读 · 0 评论 -
c# 接口和抽象类介绍
一、接口概述:接口定义一种协议,实现该接口的类或结构必须遵循该协议。一个接口可以继承于一个或多个其他接口,一个类或结构也可以实现一个或多个接口。接口可以包含4中成员:方法、属性、事件和索引器。接口本身不提供它所定义的成员的实现,它仅仅指定实现该接口的类或结构必须提供的成员。1、接口声明:需要使用interface关键字;Public interface IA{...}原创 2017-11-01 12:26:32 · 254 阅读 · 0 评论 -
C# 如何更改程序集名称
应用程序的 Assembly Name 属性确定经过编译的应用程序所使用的名称。 例如,将基于 Windows 的应用程序的 Assembly Name设置为“MyApplication”,会导致生成一个名为 MyApplication.exe 的可执行文件。 AssemblyName 的默认值是项目名称;可以在“项目设计器”的“应用程序”页中对其进行更改。注意:虽然 Assembly Nam原创 2017-10-31 17:37:15 · 9045 阅读 · 0 评论 -
一个 MainWindow.xaml 文件和一个 MainWindow.g.i.cs 文件相对应。
一个 MainWindow.xaml 文件和一个 MainWindow.g.i.cs 文件相对应。如上图所示窗口类文件被定义为partial的就是因为类 MainWindow 在 MainWindow .g.i.cs文件中还有定义,如下在 MainWindow.g.i.cs 文件中 MainWindow 的完整声明如下:public partial class Ma转载 2017-10-23 15:41:58 · 10977 阅读 · 0 评论 -
C#----用实例来理解IComparable和IComparer
C#中的基本类型都提供了默认的比较算法,C#可以调用比较算法为基本类型的数组进行排序。若希望对自建类进行比较或排序,那么可以使用IComparable和IComparer接口。一、IComparable接口继承IComparable接口,可以给自建类实现一个通用的比较方法,使自建类的数组可以使用Array. Sort方法进行排序。实现IComparable接口,要求原创 2017-11-08 18:37:42 · 1780 阅读 · 0 评论 -
c# 实现IComparable、IComparer接口、Comparer类的详解
IComparable和ICompare 接口是.net framework 中比较对象的标准方式,这两个接口之间的区别如下:1. IComparable 在要比较的对象的类中实现,可以比较该对象和另一个对象。2.IComparer 在一个单独的类中实现,可以比较任意两个对象。一般情况下,我们使用 IComparable 给出类的默认比较代码,使用其他类给出非默认的比较代码。一、I原创 2017-11-08 16:27:45 · 6763 阅读 · 0 评论 -
C#中Equals和==的比较
一、值类型的比较 对于值类型来说 两者比较的都是”内容”是否相同,即 值 是否一样,很显然此时两者是划等号的。 int i = 9; int j = 9; Console.WriteLine("i==j"+(i==j)); //true Console.WriteLine("i.Equ转载 2017-10-20 10:24:47 · 856 阅读 · 0 评论 -
.NET Remoting 最简单示例
学习技术知识一个好的方法是先动手,再深入,给出一个最简单的Remoting程序示例(C#)如下:Step1:创建类库(DLL)工程RemotingObjects,类Person代码如下:[csharp] view plain copyusing System; using System.Collections.Generic转载 2017-10-19 14:27:37 · 277 阅读 · 0 评论 -
C# typeof() 和 GetType()区别
总得来说他们都是为了获取某个实例具体引用的数据类型System.Type。1、GetType()方法继承自Object,所以C#中任何对象都具有GetType()方法,x.GetType(),其中x为变量名2、typeof(x)中的x,必须是具体的类名、类型名称等,不可以是变量名称3、System.Type.GetType(),有两个重载方法比如有这样一个变量i:转载 2017-10-19 09:52:01 · 1059 阅读 · 0 评论 -
C#中as与is的用法
一、类型转换 1.任何类型都可以转换为其基类类型,用隐式转换完成; 2.任何类型转换为其派生类型时,必须进行显示转换。如:(类型名)对象名; 3.使用GetType可以取得任何对象的精确类型; 4.基本类型可以使用Convert类实现类型转换; 5.除了string以外的其他类型都有Parse方法,用于将字符串类型转换成对应的基本类型; 6.值类型和引用类型的原创 2017-11-29 11:58:21 · 2106 阅读 · 0 评论 -
C# 静态构造函数
静态构造函数是C#的一个新特性,其实好像很少用到。不过当我们想初始化一些静态变量的时候就需要用到它了。这个构造函数是属于类的,而不是属于哪里实例的,就是说这个构造函数只会被执行一次。也就是在创建第一个实例或引用任何静态成员之前,由.NET自动调用。在使用静态构造函数的时候应该注意几点: 1、静态构造函数既没有访问修饰符(它默认为私有的),也没有参数。它一般用于初始化静态字段、只读字段原创 2017-11-20 14:44:10 · 346 阅读 · 0 评论 -
C# WinForm开发中LinkLabel的使用
LinkLabel控件类似于LinkLabel控件,但是它能够向Windows窗体应用程序中添加Web样式的链接,用户可以将LinkLabel中的文本(Text值)的一部分设置为指向网页的链接.LinkLabel控件常用属性ActiveLinkColor : 表示单击链接时的颜色LinkColor: 表示链接的初始颜色VisitedLinkColor:原创 2017-12-14 11:32:33 · 8545 阅读 · 0 评论 -
c#: throw和throw ex的区别
之前,在使用异常捕获语句try...catch...throw语句时,一直没太留意几种用法的区别,前几天调试程序时无意中了解到几种使用方法是有区别的,网上一查,还真是,主要是区别在堆栈信息的起始点不同。总结如下:我们都知道,C#中使用throw和throw ex抛出异常,但二者是有区别的。在C#中推荐使用throw;来抛出异常;throw ex;会将到现在为止的所有信息清空,认为你转载 2017-12-21 15:59:38 · 1707 阅读 · 1 评论 -
C# typeof() 和 GetType() 的区别
1、typeof(x)中的x,必须是具体的类名、类型名称等,不可以是变量名称。 2、GetType()方法继承自Object,所以C#中任何对象都具有GetType()方法,它的作用和typeof()相同,返回Type类型的当前对象的类型。 比如有这样一个变量i: Int32 i = new Int32(); i.GetType()返回值是Int32的类型,但是无法使用typeof(i),因为i是原创 2017-12-21 15:10:30 · 2817 阅读 · 0 评论 -
c# 添加dll
c#引用.net中的dll方法:选中当前工程下的引用属性,右键点击添加引用(R)...,点击左侧右上角的程序集,在右侧框框中选择添加.net库所需的.dll,最后在程序中的命名空间的上方添加该引用。c#引用外部程序的dll方法:选中当前工程下的引用属性,右键点击添加引用(R)...,此时点击右下角浏览(B)...,添加外部程序的dll,最后在程序中的命名空间的上方添加该引用。添原创 2017-11-23 18:52:36 · 4741 阅读 · 0 评论 -
c# remoting调试方法
如果在服务器端注册远程对象,则需要在服务器端的app.config中添加如下信息: 在客户端的app.config中添加如下信息: 如若在同一台电脑上测试服务器端接口程序,则ServiceURL的value设置为本原创 2017-11-30 10:20:34 · 3037 阅读 · 0 评论 -
c# string[] 数组 转换为 int[]数组
举例1:string[] strArray = "a,b,c,d,e,f,g".Split(new char[]{ ',' });int[] intArray;//C# 3.0下用此句intArray = Array.ConvertAll(strArray, s => int.Parse(s));//2.0下用以下的语句替换上例。//intArray = Array.ConvertA转载 2017-11-20 17:02:12 · 2213 阅读 · 1 评论 -
C#构造函数里的base和this的区别
class BaseClass{ private int numA; public BaseClass() { Console.WriteLine("基类的无参数构造函数. value:{0}", numA); } public BaseClass(int i) { this.numA = i; Co转载 2017-11-29 14:14:32 · 337 阅读 · 0 评论 -
C#构造函数里的base和this的区别
举例:class BaseClass{ private int numA; public BaseClass() { Console.WriteLine("基类的无参数构造函数. value:{0}", numA); } public BaseClass(int i) { this.numA = i;原创 2017-11-29 12:25:10 · 1196 阅读 · 0 评论 -
解决方案、项目、程序集、命名空间
《叩开C#之门》系列之一前言:表弟想要学编程,我推荐他学习.Net和C#。这一推荐不打紧,我却承担上了指导的职责。我又出差在外,直接辅导是不行了,通过邮件也太麻烦。推荐了几本书,可惜他太菜了,总有无从下手的感觉。推及他人,在初学C#时,是否也有这样的感觉呢?所以,就有了这个系列文章。表弟是我把他带入计算机行业的,当初什么都不懂,我曾经打开计算机机箱,指点他哪里是硬盘、哪里是内存,是CPU,转载 2017-10-17 18:07:00 · 1900 阅读 · 0 评论