c#
文章平均质量分 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 · 3646 阅读 · 0 评论 -
c#:StringComparison枚举
public enum StringComparison {CurrentCulture,CurrentCultureIgnoreCase,InvariantCulture,InvariantCultureIgnoreCase,Ordinal,OrdinalIgnoreCase}CurrentCulture 使用区域敏感排序规则和当前区域比较字符串。 Cur转载 2018-01-02 12:18:18 · 633 阅读 · 0 评论 -
C#的配置文件App.config使用总结
应用程序配置文件是标准的 XML 文件,XML 标记和属性是区分大小写的。它是可以按需要更改的,开发人员可以使用配置文件来更改设置,而不必重编译应用程序。配置文件的根节点是configuration。我们经常访问的是appSettings,它是由.Net预定义配置节。我们经常使用的配置文件的架构是象下面的形式。先大概有个印象,通过后面的实例会有一个比较清楚的认识。下面的“配置节”可以理解为转载 2017-12-18 14:33:10 · 14661 阅读 · 2 评论 -
c#中抽象类(abstract)和接口(interface)的相同点跟区别
相同点:1、都可以被继承2、都不能被实例化3、都可以包含方法声明4、派生类必须实现未实现的方法区别:1、抽象基类可以定义字段、属性、方法实现。接口只能定义属性、索引器、事件、和方法声明,不能包含字段。2、抽象类是一个不完整的类,需要进一步细化,而接口是一个行为规范。微软的自定义接口总是后带able字段,证明其是表述一类“我能做。。。”3、接口可以被多重实现,抽象类只能被转载 2017-12-18 12:54:22 · 2366 阅读 · 0 评论 -
C#中IEnumerable、ICollection、IList、List之间的区别
首先我看看 IEnumerable:// 摘要: // 公开枚举器,该枚举器支持在指定类型的集合上进行简单迭代。 // // 类型参数: // T: // 要枚举的对象的类型。 [TypeDependency("System.SZArrayHelper")] public interface IEnumerable : IEnumerable {转载 2017-12-15 18:47:41 · 1023 阅读 · 0 评论 -
C#: IEnumerable
IEnumerable这个接口在MSDN上是这么说的,它是一个公开枚举数,该枚举数支持在非泛型集合上进行简单的迭代。换句话说,对于所有数组的遍历,都来自IEnumerable,那么我们就可以利用这个特性,来定义一个能够遍历字符串的通用方法.using System;using System.Collections.Generic;using System.Linq;using Syste原创 2017-12-15 18:36:48 · 4511 阅读 · 0 评论 -
c#:RadioButton控件与CheckBox控件的用法
一、用途1.RadioButton控件单选按钮,当与其他单选按钮成对出现时,允许用户从一组选项中选择单个选项。也就是说,当同一个容器中(Form、Panel、GroupBox、PictureBox等)存在两个以上的单选按钮时,只能有一个被选中。但不在同一个容器中的几组单选按钮彼此不关联,是可以有多个被选中的。2.CheckBox控件复选框,允许用户选择和清除关联选项原创 2017-12-14 14:54:03 · 3588 阅读 · 0 评论 -
c# 嵌套类
@1、 假如类A是类B的一个成员,那么类A就成为嵌套类,类B为类A的包容类@2、可以为嵌套类指定private访问修饰符,只有嵌套类才可以这样做。@3、嵌套类中的this成员指的是嵌套类的一个实例,而不是包容类。嵌套类要想访问包容类的实例,一个办法是显式传递包容类的实例,比如通过一个构造器或方法参数。@4、嵌套类能访问包容类的任何成员,包括私有成员。但包容类不能访问嵌套类的转载 2017-12-14 11:40:26 · 1594 阅读 · 0 评论 -
C# WinForm开发中LinkLabel的使用
LinkLabel控件类似于LinkLabel控件,但是它能够向Windows窗体应用程序中添加Web样式的链接,用户可以将LinkLabel中的文本(Text值)的一部分设置为指向网页的链接.LinkLabel控件常用属性ActiveLinkColor : 表示单击链接时的颜色LinkColor: 表示链接的初始颜色VisitedLinkColor:原创 2017-12-14 11:32:33 · 8531 阅读 · 0 评论 -
c#: throw和throw ex的区别
之前,在使用异常捕获语句try...catch...throw语句时,一直没太留意几种用法的区别,前几天调试程序时无意中了解到几种使用方法是有区别的,网上一查,还真是,主要是区别在堆栈信息的起始点不同。总结如下:我们都知道,C#中使用throw和throw ex抛出异常,但二者是有区别的。在C#中推荐使用throw;来抛出异常;throw ex;会将到现在为止的所有信息清空,认为你转载 2017-12-21 15:59:38 · 1689 阅读 · 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 · 2808 阅读 · 0 评论 -
c# 添加dll
c#引用.net中的dll方法:选中当前工程下的引用属性,右键点击添加引用(R)...,点击左侧右上角的程序集,在右侧框框中选择添加.net库所需的.dll,最后在程序中的命名空间的上方添加该引用。c#引用外部程序的dll方法:选中当前工程下的引用属性,右键点击添加引用(R)...,此时点击右下角浏览(B)...,添加外部程序的dll,最后在程序中的命名空间的上方添加该引用。添原创 2017-11-23 18:52:36 · 4715 阅读 · 0 评论 -
c# remoting调试方法
如果在服务器端注册远程对象,则需要在服务器端的app.config中添加如下信息: 在客户端的app.config中添加如下信息: 如若在同一台电脑上测试服务器端接口程序,则ServiceURL的value设置为本原创 2017-11-30 10:20:34 · 3020 阅读 · 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 · 2195 阅读 · 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 · 325 阅读 · 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 · 1184 阅读 · 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 · 1927 阅读 · 0 评论 -
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 · 1431 阅读 · 0 评论 -
c#: 泛型接口、泛型方法
泛型可以自定义泛型接口、泛型类、泛型方法、泛型事件、泛型委托。1>自定义泛型接口和普通接口一样,一个泛型接口通常也是与某些对象相关的约定规程。泛型接口的声明如下:interface [接口名]{[接口体]}在c#中,通过尖括号“。一般来说,声明泛型接口与声明非泛型接口遵循相同的规则。泛型接口定义完成之后,就要定义此接口的子类。定义泛型接口的子类有以下两种方法。原创 2018-01-03 16:29:17 · 15566 阅读 · 1 评论 -
C#: 字符串string和字节数组byte[]的转换
string转byte[]:byte[] byteArray = System.Text.Encoding.Default.GetBytes ( str );byte[]转string:string str = System.Text.Encoding.Default.GetString ( byteArray );string转ASCII byte[]:byte[] byteArray = Sy...转载 2018-06-26 19:06:17 · 1211 阅读 · 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 · 9755 阅读 · 1 评论 -
C#: 浅拷贝与深拷贝区别
也许会有人这样解释C# 中浅拷贝与深拷贝区别:浅拷贝是对引用类型拷贝地址,对值类型直接进行拷贝。不能说它完全错误,但至少还不够严谨。比如:string 类型咋说?其实,我们可以通过实践来寻找答案。首先,定义以下类型:int 、string 、enum 、struct 、class 、int[] 、string[]代码如下:public enum my转载 2018-04-28 16:02:21 · 1227 阅读 · 1 评论 -
c# List<T>与ObservableCollection<T>
在WPF , silverlight ,WP7中经常会用到List和ObservableCollection。这里简单讲一下他们之间的相互转换。1.List的简单介绍:List代表的是强类型的Ojbect集合,可以通过索引访问并且提供了查找、排序以及操作此集合的方法。List基本上和ArrayList相同,它用数组的方式实现了接口IList并且他的大小可以根据需要来自动增加转载 2018-04-28 10:50:19 · 6956 阅读 · 1 评论 -
C#: "$"作用和用法
C#中$的用法:"$"是在C#6.0出现的一个新特性,其作用相当于对String.format()的简化。string.format()需要自己在字符串中写占位符,在后面跟上参数。如果要格式化的参数比较多,写起来就比较恶心。 而用$符号,写法就简洁多了,我们可以直接在字符串的相应位置协商自己想要替换的参数就好了。class Program { static void Mai...原创 2018-05-18 12:00:20 · 8268 阅读 · 3 评论 -
c#:“@”的作用和用法
“@”在看别人程序的时候偶尔看到,总结了一下两个用途1. 不常用,也不推介用的用法。 @关键字 可以作为标识符来使用,说白了,就是讲关键字变成非关键字。2.逐字字符串字面量,以@开头,后面是由引导包含的字符串。使用引导号包含的字符串的内容原样输出,而且他们能够跨越两行或更多行。因此,可以加入新行,制表符等,而不需要使用转义序列。唯一例外的情况是,为了显示双引号("),必须在同一行中使用两个双引号(...转载 2018-05-18 10:26:19 · 697 阅读 · 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 · 3184 阅读 · 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 · 7602 阅读 · 0 评论 -
c#:线程同步
在C#里面用于实现线程同步的常用类有如下几类:1、Mutex类(互斥器),Monitor类,lock方法 2、ManualResetEvent类,AutoResetEvent类(这两个都是由EventWaitHandle类派生出来的) 3、ReaderWriterLock类分析如下:1、ManualResetEvent类:ManualResetEvent 允许线程通过发信号原创 2018-01-05 16:50:58 · 2553 阅读 · 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 · 1399 阅读 · 1 评论 -
C# 静态构造函数
静态构造函数是C#的一个新特性,其实好像很少用到。不过当我们想初始化一些静态变量的时候就需要用到它了。这个构造函数是属于类的,而不是属于哪里实例的,就是说这个构造函数只会被执行一次。也就是在创建第一个实例或引用任何静态成员之前,由.NET自动调用。在使用静态构造函数的时候应该注意几点: 1、静态构造函数既没有访问修饰符(它默认为私有的),也没有参数。它一般用于初始化静态字段、只读字段原创 2017-11-20 14:44:10 · 337 阅读 · 0 评论 -
C#设计模式(2)——简单工厂模式
一、引言 这个系列也是自己对设计模式的一些学习笔记,希望对一些初学设计模式的人有所帮助的,在上一个专题中介绍了单例模式,在这个专题中继续为大家介绍一个比较容易理解的模式——简单工厂模式。二、简单工厂模式的介绍 说到简单工厂,自然的第一个疑问当然就是什么是简单工厂模式了? 在现实生活中工厂是负责生产产品的,同样在设计模式中,简单工厂模式我们也可以理解为负责生产对象的一个类转载 2017-10-09 17:58:14 · 242 阅读 · 0 评论 -
C#设计模式(1)——单例模式
一、引言最近在设计模式的一些内容,主要的参考书籍是《Head First 设计模式》,同时在学习过程中也查看了很多博客园中关于设计模式的一些文章的,在这里记录下我的一些学习笔记,一是为了帮助我更深入地理解设计模式,二同时可以给一些初学设计模式的朋友一些参考。首先我介绍的是设计模式中比较简单的一个模式——单例模式(因为这里只牵涉到一个类)二、单例模式的介绍说到单例模式,大家第转载 2017-10-09 15:45:10 · 232 阅读 · 0 评论 -
解决方案、项目、程序集、命名空间
《叩开C#之门》系列之一前言:表弟想要学编程,我推荐他学习.Net和C#。这一推荐不打紧,我却承担上了指导的职责。我又出差在外,直接辅导是不行了,通过邮件也太麻烦。推荐了几本书,可惜他太菜了,总有无从下手的感觉。推及他人,在初学C#时,是否也有这样的感觉呢?所以,就有了这个系列文章。表弟是我把他带入计算机行业的,当初什么都不懂,我曾经打开计算机机箱,指点他哪里是硬盘、哪里是内存,是CPU,转载 2017-10-17 18:07:00 · 1869 阅读 · 0 评论 -
C#的隐式类型转换和显式类型转换
C#的隐式类型转换和显式类型转换C#的隐式类型转换 在C#语言中,一些预定义的数据类型之间存在着预定义的转换。比如,从int类型转换到long类型。C#语言中数据类型的转换可以用分为两类:隐式转换(implicit conversions)和显式转换(explicit conversions)。这篇文章我们将详细介绍这两类转换。1. 隐式类型转换隐式转转载 2017-09-20 16:49:08 · 3438 阅读 · 0 评论 -
c# 匿名方法
匿名方法是在初始化委托时内联声明的方法。例如下面这两个例子:不使用匿名方法的委托:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication7{ class Program {转载 2017-09-19 17:13:39 · 365 阅读 · 0 评论 -
关于C#中类方法的重写和覆盖
在C#中改变类中相同名称的方法的实现过程中有三种方式:重载,重写和覆盖。 首先重载是指具有相同的方法名,通过改变参数的个数或者参数类型实现同名方法的不同实现。 重写则是只在继承中,子类通过override关键字修饰方法,实现父类和子类相同方法的不同实现,注意,父类方法必须是用virtual或者abstract关键字修饰的虚方法或者抽象方法,例如: public class A {原创 2017-09-27 17:46:35 · 1403 阅读 · 1 评论 -
C#中base关键字的几种用法
base其实最大的使用地方在面相对性开发的多态性上,base可以完成创建派生类实例时调用其基类构造函数或者调用基类上已被其他方法重写的方法。例如:2.1关于base调用基类构造函数public class A{ public A() { Console.WriteLine("Build A");转载 2017-09-25 17:12:29 · 529 阅读 · 0 评论 -
C#常用命名空间
C#常用命名空间一、基础命名空间System处理内建数据、数学计算、随机数的产生、环境变量、垃圾回收器及一些常见的异常和特征.System.Collections包含了一些与集合相关的类型,比如列表、队列、位数组、哈希表和字典等.System.Collections.Generic原创 2017-09-15 17:52:46 · 4528 阅读 · 0 评论 -
c# byte数组转换为字符串
Int16 ival = 20; byte[] btvals = BitConverter.GetBytes(ival); foreach(byte i in btvals) //Console.WriteLine( i.ToString()); //10进制显示 Console.WriteLine("0x" + i.ToString("X2")); //16原创 2017-09-23 16:14:18 · 14951 阅读 · 1 评论 -
C#多线程开发:使用lock语句同步多个线程
在多个线程之间共享数据时,需要考虑线程同步问题,必须确保每次只有一个线程访问和改变共享数据。C#中使用lock语句可以轻松地设置和解除锁定以期达到每次只有一个线程访问和改变共享数据的目的。下面是一个多线程访问共享数据的实例,看看在没有进行同步操作的情况下会出现什么样的问题?[csharp] view plain copyusi原创 2017-09-22 18:36:23 · 2072 阅读 · 0 评论