C#
文章平均质量分 73
JPF29
这个作者很懒,什么都没留下…
展开
-
C#
C# 一、控制台输出与输入 C# 二、注释 C# 三、数据类型 C# 四、转义字符(escape sequence) C# 五、 变量,常量,标识符使用规则/规范,关键字 C# 六、数据类型转换/型 C# 七、运算符 C# 八、程序的基本结构 C# 九、数组 C# 十、数组的基本操作 C# 十一、冒泡排序与选择排序 C# 十二、字符串的基本操作 C#...原创 2019-11-18 16:10:36 · 610 阅读 · 0 评论 -
C# 五十五、C#中使用Json
操作前安装LitJson:将LitJson.dll文件添加到当前项目\bin\Debug文件夹中。添加引用:在解决方案下找到引用,右击添加引用,浏览并添加上面的LitJson.dll文件。导入命名空间:using LitJson;解析方法一:using LitJson;using System;using System.Collections.Generic;...原创 2018-12-28 23:51:36 · 579 阅读 · 0 评论 -
C# 四十八、文件操作与文件流 一
C#中操作文件的流模型——文件和流文件: 从广义上可看成是保存在磁盘上的二进制字节,是按住一定格式存储的信息,因此能用流对文件进行操作,如读取文件内容、将信息写入文件等;流:C#中流的概念可以和生活中的“流”相对应,有源头(文件),传输管道(数据流入/流出),目的地/流向; C#中流是面向对象的抽象概念,是二进制字节序列; 在C#中通过.NET的System.IO模型以流的方...原创 2018-12-23 16:03:11 · 777 阅读 · 0 评论 -
C# 五十二、认识XML
概念XML 指可扩展标记语言(EXtensibleMarkupLanguage) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输数据,而非显示数据 XML 标签没有被预定义。您需要自行定义标签 XML 被设计为具有自我描述性 XML 是W3C 的推荐标准 XML 是不作为的,XML不会做任何事情,被设计用来结构化、存储以及传输信息。 XML 仅仅是...原创 2018-12-24 10:38:48 · 235 阅读 · 0 评论 -
C# 五十四、认识Json
概念JSON的全称是”JavaScript Object Notation”,意思是JavaScript对象表示法。 JSON 是存储和交换文本信息的语法。类似 XML,但比 XML 更小、更快,更易解析。 JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)。 JSON 是轻量级的文本数据交换格式。 JSON 独立于语言, J...原创 2018-12-24 16:24:13 · 179 阅读 · 0 评论 -
C# 五十七、进程+线程+多线程+Thread类 (一)
进程进程为应用程序的运行实例,是应用程序的一次动态执行。当一个程序开始运行时,它就是一个进程。线程一个进程是由多个线程组成的,线程是程序执行的基本单位。线程是程序中一个单一的顺序控制流程。在单个程序中同时运行多个线程完成不同的工作,称为多线程。Thread类Thread类,用于对线程进行管理,如创建线程、暂停线程、终止线程、合并线程、设置其优先级并获取其...原创 2019-03-28 09:19:01 · 241 阅读 · 0 评论 -
C# 五十一、序列化与反序列化
概念序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。序列化使其他代码可以查看或修改那些不序列化便无法访问的对象实例数据。序列化就是为了保持对象的持久化;对象序列化只能针对对象的字段进行序列化。序列化期间,对象将其当前状态写入临时或持久性存储区,以后可以通过从存储区中读取或反序列化对象的状态重新创建该对象。注意:不是所有对象都能序列化...原创 2018-12-23 18:28:56 · 289 阅读 · 0 评论 -
C# 五十、文件操作与文件流 二
文件编码(码表)ASCII 英文码表,每个字符占1个字节。(正数) GB2312 兼容ASCII,包含中文。每个英文占一个字节(正数),中文占两个字节(负数) GBK 简体中文,兼容gb2312,包含更多汉字。英文占1个字节(正数),中文占两个(1个负数,1个可正可负)GB18030 Big5 繁体中文 ...原创 2018-12-23 17:28:01 · 253 阅读 · 0 评论 -
C# 四十七、泛型约束
概念 C#中的泛型只支持显示的约束,因为这样才能保证C#所要求的类型安全。 显示的约束并非是必须的,如果不加约束,泛型类型参数将只能访问System.Object类型中的公有方法。 显式约束由where子句表达。 T:结构 类型参数必须是值类型。可以指定除 Nullable 以外的任何值类型。 T:类 类型参数必须...原创 2018-12-20 16:40:47 · 275 阅读 · 0 评论 -
C# 四十六、匿名方法+Lambda表达式+扩展方法
匿名方法匿名方法(Anonymous methods)提供了一种传递代码块作为委托参数的技术。匿名方法是没有名称只有主体的方法。在匿名方法中不需要指定返回类型,它是从方法主体内的 return 语句推断的。匿名方法语法: delegate(参数) {方法体};匿名方法特点: 1、没有方法名(由系统默认名字) 2、只能在定义的时候调用,其他地方无法...原创 2018-12-20 15:17:29 · 355 阅读 · 0 评论 -
C# 四十五、异常处理与程序调试
程序错误类型1、语法错误指代码不符合C#语言的语句。Visual Studio的编译系统能查出此类错误并报告错误的原因,有语法错误的代码不能通过编译,改正后才能通过编译。2、运行时错误运行时错误相对复杂一些,指的是在程序的运行过程中产生的错误,也就是异常。3、逻辑错误逻辑错误是指程序没有实现编程人员的设计意图和功能。有这类错误的程序可以运行,但是程序运行结果与预期不同。逻辑...原创 2018-12-20 14:17:19 · 511 阅读 · 0 评论 -
C# 四十四、索引器
概念索引器是一种特殊的类的成员,它能够让对象以类似数组的方式来存取,使程序看起来更为直观,更容易编写。当一个类包含了数组和集合成员时,索引器将大大简化对数组或集合成员的存取操作。通过索引器可以存取类的实例的数组成员,操作方法和数组相似。索引器(Indexer)可被重载。索引器声明的时候也可带有多个参数,且每个参数可以是不同的类型。定义定义索引器的方式与定义属性有些类...原创 2018-12-20 11:15:45 · 222 阅读 · 0 评论 -
C# 四十三、event(事件)
概念事件是类在发生其关注的事情时用来提供通知的一种方式。类或对象可以通过事件向其他类或对象通知发生的相关事情。事件发行者(Publisher):一个事件的发行者,也称为发送者(Sender)。其实就是个对象,这个对象会自行维护本身的状态信息,当本身状态信息变动时,便触发一个事件,并通知所有的事件订阅者。事件订阅者(Subscriber):对事件感兴趣的对象,也称为接收者(Rec...原创 2018-12-16 19:49:38 · 457 阅读 · 0 评论 -
C# 四十二、delegate(委托)
概念委托也叫代理,就是把事情交付给别人去办。委托是具有相同签名和返回值类型的有序方法列表。委托定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递。委托是一种引用类型。方法的列表称为调用列表,当委托被调用时,它调用列表中的每个方法。委托是方法的抽象,它存储的就是一系列具有相同签名和返回回类型的方法的地址/引用。定义委托语法格式:访问修饰符 dele...原创 2018-12-14 15:19:43 · 315 阅读 · 0 评论 -
C# 四十一、Queue<T>
定义一、初始化 System.Collections.Generic.Queue`1 类的新实例,该实例为空并且具有默认初始容量。Queue<数据类型> 标识符 = new Queue<数据类型>();二、初始化 System.Collections.Generic.Queue`1 类的新实例,该实例为空并且具有指定的初始容量。QueuQueue<...原创 2018-11-22 11:32:21 · 581 阅读 · 0 评论 -
C# 四十、Stack<T>
定义语法格式:一:初始化 System.Collections.Generic.Stack`1类的新实例,该实例为空并且具有默认初始容量。Stack<数据类型> 标识符 = new Stack<数据类型>();二:新实例初始化 System.Collections.Generic.Stack`1 ,该类为空并具有指定的初始容量或默认的初始容量,则两者中较...原创 2018-11-22 11:29:28 · 390 阅读 · 0 评论 -
C# 二、注释
单行注释语法://注释内容(不执行)多行注释语法:第一种/*注释内容(不执行)*/第二种(与第一种效果相同,但是编译器会注意到并把注释内容放到单独的文本文件中,即可折叠.也称XML带分隔符的注释)/**注释内容(不执行)**/折叠注释语法:#region 为此段代码标注注释内容(执行)#endregion...原创 2018-10-31 15:28:07 · 239 阅读 · 0 评论 -
C# 一、控制台输出与输入
Console.Write();官方摘要:将指定的内容写入标准输出流。简单理解:输出,不换行。注意事项:此方法没有无参重载函数,即此方法小括号内必须有输出内容,不能为空。Console.WriteLine();官方摘要:将指定的内容(后跟当前行的结束符)写入标准输出流。简单理解:输出,换行。注意事项:此方法有无参重载函数,即此方法小括号内可以为空,表示将当前行终...原创 2018-10-31 11:50:57 · 1348 阅读 · 0 评论 -
C# 四十九、using使用方法
using 关键字有两个主要用途:作为指令,用于为命名空间创建别名或导入其他命名空间中定义的类型。 作为语句,用于定义一个范围,在此范围的末尾将释放对象。作为指令 1、用在命名空间里语法格式:using 命名空间名字;这样可以在程序中直接用命令空间中的类型,而不必指定类型的详细命名空间2、为命名空间或类型创建别名语法格式:using 别名 = 包括详细命名空间信息的...原创 2018-12-23 17:22:02 · 216 阅读 · 0 评论 -
C# 五十三、C#中使用XML
创建XML文件:解决方案 --->项目(命名空间)--右击 -->添加/新建项---> XML文件<?xml version="1.0" encoding="utf-8" standalone="yes"?><books> <book s="悲"> <name>红楼梦</name> &l...原创 2018-12-24 12:01:36 · 391 阅读 · 1 评论 -
C# socket
http://c.biancheng.net/socket/using System;using System.Collections.Generic;using System.Linq;using System.Net;using System.Net.Sockets;using System.Text;using System.Threading;using Syste...原创 2019-05-08 16:50:28 · 187 阅读 · 0 评论 -
C# 六十二、正则表达式
概念正则表达式(Regular Expression),使用一种数学算法来解决计算机程序中的文本检索、匹配等问题。正则表达式语言是一种专门用于字符串处理的语言。通过正则表达式可以进行检索(从字符串中获取想要的部分)、匹配(判定给定的字符串是否符合正则表达式的过滤逻辑)。正则表达式表述了一个字符串的书写规则。正则表达式主要实现验证、提取、分割、替换字符的功能。在正则表达式...原创 2019-03-29 13:09:34 · 228 阅读 · 0 评论 -
C# 五十八、进程+线程+多线程+Thread类 (二)
using System;using System.Collections.Generic;using System.Diagnostics;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;namespace TestCSharp{ class...原创 2019-03-28 10:16:40 · 441 阅读 · 1 评论 -
C# 五十九、异步
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;namespace TestCSharp{ delegate void myHandler(string ...原创 2019-03-28 10:16:58 · 176 阅读 · 0 评论 -
C# 六十三、运算符重载
概念重定义或重载 C# 中内置的运算符。使用自定义类型的运算符。重载运算符是具有特殊名称的函数,是通过关键字 operator 后跟运算符的符号来定义的。与其他函数一样,重载运算符有返回类型和参数列表。C# 中运算符重载的能力:运算符 描述 +, -, !, ~, ++, -- 这些一元运算符只有一个操作数,且可以被重载。 +, -, *, /...转载 2019-03-30 10:14:42 · 192 阅读 · 0 评论 -
C# 五十六、反射
概念反射:通过动态获取程序集,并获取其中的类型元数据,然后访问该类型的过程。在.NET中,反射可以实现从对象的外部来了解对象或程序集内部结构的功能,哪怕不知道这个对象或程序集是什么。反射可以动态创建出对象并执行其中的方法。反射是.NET中的重要机制,通过反射,可以在运行时获得程序或程序集中每一个类型(包括类、结构、委托、接口、枚举等)的成员和成员的信息。有了反射,即可对每一...原创 2019-03-26 16:43:31 · 149 阅读 · 0 评论 -
C# 六十一、设计模式:装饰者模式
装饰模式,指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;public interface IBuild{ void Bui...原创 2019-03-28 11:10:28 · 308 阅读 · 0 评论 -
C# 六十、设计模式:工厂模式
工厂模式:用于封装某些类的对象的创建当对应一些接口或抽象类时,可以接收子类的对象,但不能直接创建实例,而是通过创建对应的工厂类,实现操作不同子对象的创建,工厂可以根据用户的不同选择返回若干个不同类的对象。代码示例:using System;using System.Collections.Generic;using System.Linq;using System.Tex...原创 2019-03-28 11:09:34 · 391 阅读 · 1 评论 -
C# 三、数据类型
整数类型数据类型 含义 取值范围 后缀 (不区分大小写) sbyte 有符号8位 -128 ~ 127 byte 无符号8位 0 ~ 255 short 有符号16位 -32,768 ~ 32,767 ...原创 2018-10-31 17:31:58 · 287 阅读 · 0 评论 -
C# 四、转义字符(escape sequence)
概念:用一些普通字符的组合来代替一些特殊字符,由于其组合改变了原来字符表示的含义,因此称为“转义” 。一种特殊的字符常量; 以反斜线"\"开头,后跟一个或几个字符; 主要用来表示那些用一般字符不便于表示的控制代码; 用可以看见的字符表示那不可以看见的字符。 字符@可以使后边的字符串常量中包含的反斜杠不被识别为转义字符。也可以将一个字符串定义在多行。 使用@字符时,字符串中""代表"...原创 2018-10-31 18:01:21 · 1316 阅读 · 0 评论 -
C# 二十四、值传递与引用传递
值传递使用值传递时,向形式参数传递的是实在参数的副本,方法内发生的对形式参数的更改对实在参数本身没有任何影响。代码示例: static void Main(string[] args) { int i = 0; Console.WriteLine(FunctionA(i)); ---> 1 ...原创 2018-11-09 13:41:01 · 199 阅读 · 0 评论 -
C# 二十五、匿名类型与对象初始化器(附带:类初始化器)
匿名类型提供了一种方便的方法,可用来将一组只读属性封装到单个对象中,而无需首先显式定义一个类型。 类型名由编译器生成,并且不能在源代码级使用。 每个属性的类型由编译器推断。 可通过使用new运算符和对象初始值创建匿名类型。 匿名类型包含一个或多个公共只读属性。 包含其他种类的类成员(如方法或事件)为无效。 用来初始化属性的表达式不能为 null、匿名函数或指针类型。 通常,当使用匿名...原创 2018-11-09 14:50:42 · 549 阅读 · 0 评论 -
C# 二十六、继承
继承继承(以及封装和多态性)是面向对象的编程的三个主要特征之一。 通过继承,可以创建重用、扩展和修改在其他类中定义的行为的新类。 其成员被继承的类称为“基类/父类/超类”,继承这些成员的类称为“派生类/子类/次类”。实现继承语法格式:访问修饰符 class 派生类名:基类名{ 派生类的主体}继承的特性:1、可传递性;2、单一性;3、访问修...原创 2018-11-09 15:12:51 · 274 阅读 · 0 评论 -
C# 二十七、虚成员virtual+this+base+new
虚成员关键字:重写父类中的成员,用virtual修饰;子类中对应override修饰。注意: 1、字段不能是虚拟的,只有方法、属性、事件和索引器才可以是虚拟的; 2、如果在子类重写父类的虚方法中,用base“.”调用父类虚方法,可以续写此方法;3、无论在子类和最初声明虚拟成员的类之间已声明多少个类,虚拟成员都将永远为虚拟成员;4、如果类A声明了一个虚拟成员,类...原创 2018-11-09 16:05:58 · 1121 阅读 · 0 评论 -
C# 二十八、抽象abstract
关键字:使用abstract关键字可以创建不完整且必须在派生类中实现的类和类的成员。抽象类:1、抽象类是特殊的类,只是不能被实例化;除此以外具有类的其他特性; 2、重要的是抽象类可以包括抽象方法,这是普通类所不能的; 3、抽象类中也可以编写非抽象方法;4、抽象类可以派生自一个抽象类,可以覆盖基类的抽象方法也可以不覆盖。5、抽象父类申请成对象,不能构造成父类使...原创 2018-11-09 16:26:18 · 241 阅读 · 0 评论 -
C# 二十九、接口interface
关键字:interface接口是一种规范/协议; 接口起到约束作用,便于更好地管理代码,避免遗漏; 接口解决了类不能多继承的问题。注意1、子类可以有且只有一个父类,但可以继承多个接口(“,”隔开)。2、接口可以包含属性、方法、事件、索引器,不能包含常量、字段、构造函数、析构函数、静态成员,不能进行运算符重载。3、接口中所有成员默认公开,不能有修饰符。4、接口里方法不能...原创 2018-11-12 10:49:12 · 326 阅读 · 0 评论 -
C# 三十、密封sealed与分部partial
密封关键字:sealed密封类:不能当作基类的类。其他的类不能从此类派生,从而保证了密封类的密封性和安全性。密封方法:对重写后的方法加上sealed使其密封,那么此方法无法再被重写。分部关键字:partial分部类:将一个类写在几个文件中,编译时会自动把它们组合起来。分部方法:在分部类中,将方法的定义与实现分隔开。 分部方法隐式为private类型,不能使...原创 2018-11-12 11:48:06 · 1922 阅读 · 1 评论 -
C# 三十一、集合+ArrayList(动态数组)
集合(Collection)类集合如同数组,被用来储存和管理一组具有相同性质的对象。除了基本的数据管理功能,还提供了各种数据结构及算法的实现。 集合中包含的对象称为集合元素。 集合可以分为泛型集合类和非泛型集合类。 泛型集合类一般位于System.Collections.Generic命名空间,非泛型集合类一般位于System.Collections命名空间,除此之外,在System...原创 2018-11-13 16:36:09 · 429 阅读 · 0 评论 -
C# 三十二、Hashtable(哈希表)
哈希表:使用键来访问集合中的元素。定义几种基本的语法格式:一:初始化新的空实例 System.Collections.Hashtable 类使用默认的初始容量、 加载因子、 哈希代码提供程序和比较器。 Hashtable 标识符 = new Hashtable();二:初始化新的空实例 System.Collections.Hashtable 类使用指定的初始容量和默认...原创 2018-11-14 12:55:30 · 1033 阅读 · 0 评论 -
C# 三十三、SortedList(排序列表)
SortedList 类:代表了一系列按照键来排序的键/值对,这些键值对可以通过键和索引来访问。 排序列表是数组和哈希表的组合。它包含一个可使用键或索引访问各项的列表。如果您使用索引访问各项,则它是一个动态数组(ArrayList),如果您使用键访问各项,则它是一个哈希表(Hashtable)。集合中的各项总是按键值排序。定义几种基本的语法格式:一、新实例初始化 System....原创 2018-11-15 15:22:34 · 3056 阅读 · 0 评论