
C#中的随笔
文章平均质量分 75
To-String
Programming changes the world
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
《随笔一》——C#中的“静态构造函数、对象初始化语句”
目录静态构造函数对象初始化语句静态构造函数我们在使用类中的静态成员时,先要初始化这些成员。 在声明静态成员时、可以同时提供一个初始值。 但有时候我们需要执行更复杂的初始化操作, 这应该怎么办呢?我们可以把构造函数声明成static的, 一般来说, 静态的构造函数初始化类的静态字段。关于静态构造函数应注意的有:那么一个类只能有一个静态构造函数,而且不能带参数、没有返回...原创 2018-11-09 12:09:29 · 890 阅读 · 0 评论 -
《随笔二十一》——C#中的 “ 接口 、 as 运算符”
目录什么是接口使用BCL中的接口IComparable 接口的示例 (269P)声明接口 (272P)实现接口 (273P)接口和抽象类的相同点和不同点接口是引用类型 (275P)接口和 as 运算符 (276P)实现具有重复成员的接口 (277P)将类对象转换为多个其实现接口的引用 (279P)显式接口成员实现 (281P)访问显式接口成员实现 (28...原创 2018-12-25 16:05:25 · 772 阅读 · 0 评论 -
《随笔二十二》——C#中的 “ where字句、扩展方法和泛型类、泛型委托、泛型接口、协变、逆变”
目录泛型类的示例where 字句 (317P)有哪些类型可以被 where 子句所约束 (318P)泛型方法 (319P)扩展方法 (145P)扩展方法和泛型类 (322P)泛型结构体 (323P)泛型委托 (323P)泛型接口 ( 325P )在普通类中实现泛型接口 (326P)泛型接口的实现必须唯一 (327P)泛型类的示例c# 可以把以下类...原创 2019-01-14 16:16:59 · 524 阅读 · 0 评论 -
《随笔二十三》——C#中的 “ 枚举器、可枚举类 、和 迭代器 ”
目录枚举器 和 可枚举类型 (336P)IEnumerator 接口 (337P)IEnumerable 接口使用IEnumerable 和IEnumerator 接口来使某个类成为可枚举类型340P迭代器块(341P)使用迭代器来创建枚举器 (344P)使用迭代器来创建可枚举类型 (346)枚举器 和 可枚举类型 (336P) 每一个可枚...原创 2019-05-21 09:04:00 · 2866 阅读 · 0 评论 -
《随笔二十四》——C#中的 “ 异常 ”
目录什么是异常try 语句System.Exceptin异常类 (461P)catch 子句finally 块 (464P)使用 throw 语句 抛出一个异常 (469P)什么是异常异常是在运行期间代码中产生的错误。int[] myArray = {1,2,3,4}; int myEle = myArray[4];//数组下标越界 ...原创 2019-01-29 15:58:54 · 252 阅读 · 0 评论 -
《随笔二十五》——C#中的 “ 反射和特性 ”
目录Type 类使用GetType方法 或使用typeof运算符 来 获取 Type 对象 (482P)什么是特性在程序集中使用C# 中已定义的特性 (485P)使用 Obsolete 特性 来标识某段代码是已过时的(485P)使用Conditional 特性 来禁止某些方法被调用(486P)使用 CallerFilePath, CallerLineNumber, ...原创 2019-05-24 15:26:23 · 517 阅读 · 0 评论 -
《随笔二十六》——C#中的 “ string 字符串、可空类型 ”
c# 预定义的类型 string 表示 .Net类 System.String。关于字符串,需要知道的最重要的事情是:字符串是Unicode字符的数组。 string 中的字符串是不能被修改的点击这里进入官网了解更多 string 类的成员注意: 上面的操作不会改变 string, 而是返回一个新的副本(该副本也是不能被修改的)。namespace HelloWo...原创 2019-05-27 09:43:36 · 1296 阅读 · 0 评论 -
《随笔二十七》——C#中的 “ 析构函数和 dispose 模式 ”
析构函数析构函数可以在类实例不再被引用的时候,执行一些释放资源的工作。关于析构函数需要注意的有: 每个类只能有一个析构函数 析构函数不能有参数、不能有返回值、不能重载 析构函数只能用作类的实例, 所以没有静态析构函数 记住: 不能在代码中显式调用析构函数。相反, 当垃圾回收器分析代码并认为代码中不存在指向该对象的可能路径时,系统会在垃圾回收过程中调用析构函数。使用析构...原创 2019-05-27 10:11:19 · 345 阅读 · 0 评论 -
《随笔三十八》——C#中的 “ 解析Array类 中的属性与方法”
目录PropertyArray.ICollection.Count:Array.LengthArray.RankMethodArray.BinarySearch (静态方法)Array.Clear:Array.CloneArray.CopyArray.CopyToArray.CreateInstanceArray.ExistsArray.F...原创 2019-06-08 14:02:02 · 891 阅读 · 0 评论 -
《随笔二十九》——C#中的 “ 解析 StringBuilder 类 中的属性与方法”
点击这里进入官网了解更多的 信息StringBuilder 类表示一个可变字符串。该类不能继承。stringBuilder 类可以帮助你动态、有效地生成字符串, 并且避免创建许多副本。 stringBuilder类是BCL的成员, 位于System.Text命名空间中。 stringBuilder 对象是Unicode字符的可变数组。构造方法 static void...原创 2019-06-01 13:39:04 · 446 阅读 · 0 评论 -
《随笔三十》——C#中的 “ 解析 C#中预定义类型中的方法”
目录FieldsMethodsInt32.CompareToInt32.EqualsInt32.ParseInt32.ToStringInt32.TryParse这些操作都定义在System命名空间 内。点击官网了解更多详情注: 这里是拿 C# 中的 int 类型做示例, 其实C# 中 的每一个预定义类型都有以下的方法。 具体的可以到官网上去看...原创 2019-06-03 20:42:56 · 258 阅读 · 0 评论 -
《随笔三十一》——C#中的 “ 解析 泛型 “ List<T> 类 ” 中的方法和属性”
目录ListConstructors使用 List() 默认构造函数:List(Int32)List(IEnumerable)PropertysList.CapacityList.CountMethodsList.AddList.AddRange(IEnumerable)List.BinarySearchList.ClearList.Co...原创 2019-06-02 21:43:08 · 826 阅读 · 0 评论 -
《随笔三十二》——C#中的 “ 解析 泛型 “ Queue<T> 类 ” 中的方法和属性”
目录QueueConstructorsPropertyQueue.CountMethodsQueue.ClearQueue.ContainsQueue.DequeueQueue.EnqueueQueue.PeekQueue.ToArrayQueue.TrimExcess点击这里进入官网了解更多详情该类在System.Collections...原创 2019-06-03 08:55:27 · 497 阅读 · 0 评论 -
《随笔三十三》——C#中的 “ 解析 泛型 “ Stack<T> 类 ” 中的方法和属性”
目录StackConstructorsPropertyStack .CountMethodsStack.ClearStack.ContainsStack.PeekStack.PopStack.PushStack.ToArrayStack.TrimExcess点击这里进入官网了解更多详情该类在System.Collections.Generic...原创 2019-06-03 09:35:08 · 718 阅读 · 0 评论 -
《随笔三十四》——C#中的 “ 解析 泛型 “ LinkedList <T> 类 ” 中的方法和属性”
目录LinkedListConstructorsPropertysLinkedList.CountLinkedList.FirstLinkedList.LastMethodsLinkedList.AddAfterLinkedList.AddBeforeLinkedList.AddFirstLinkedList.AddLastLinkedList.Cle...原创 2019-06-03 12:27:06 · 849 阅读 · 0 评论 -
《随笔三十五》——C#中的 “ 解析 泛型 “ LinkedListNode <T> 类” 中的属性”
目录LinkedListNode(T) ConstructorPropertysLinkedListNode.ListLinkedListNode.NextLinkedListNode.PreviousLinkedListNode.Value点击这里进入官网了解更多该类在System.Collections.Generic命名空间。LinkedList...原创 2019-06-03 14:53:59 · 1135 阅读 · 0 评论 -
《随笔三十七》——C#中的 “ 解析 泛型 “ Dictionary 类 中的属性 和 方法”
目录DictionaryConstructors,tvalue>PropertysDictionary.Count,tvalue>Dictionary.Item[ TKey ],tvalue>Dictionary.Keys,tvalue>Dictionary.Values,tvalue>MethodsDictionary.TryAdd...原创 2019-06-14 11:46:36 · 850 阅读 · 0 评论 -
《随笔三十六》——C#中的 “ 解析 泛型 “ HashSet<T> 类 中的属性”
目录HashSetConstructorsPropertysHashSet.ComparerHashSet.CountMethodsHashSet.AddHashSet.ClearHashSet.ContainsHashSet.CopyToHashSet.ExceptWithHashSet.IntersectWithHashSet.IsPrope...原创 2019-06-04 12:35:31 · 952 阅读 · 0 评论 -
《随笔二十》——C#中的 “ 事件 ”
目录目录发布者 和 订阅者使用事件的步骤 (257P)声明事件 (257P)订阅事件触发事件EventHandler 标准事件的用法 (261P)使用 -= 运算符来移除事件处理程序 (264P)发布者 和 订阅者 发布者类定义了某些程序的某些部分可能感兴趣的事件。 其他类可以 “ 订阅该事件 ”,然后在事件发生时发布者可以通知它们。 订阅者类通过...原创 2018-12-17 10:00:37 · 211 阅读 · 0 评论 -
《随笔十八》——C#中的 “ 【《Effective C#》提炼总结】提高Unity中C#代码质量的22条准则 ”
目录引言本文内容思维导图式总结原则1:尽可能地使用属性,而不是可直接访问的数据成员原则2:偏向于使用运行时常量而不是编译时常量原则3: 推荐使用is 或as操作符而不是强制类型转换原则4: 推荐使用条件属性而不是#if条件编译原则5:理解几个等同性判断之间的关系原则6:了解GetHashCode( )的一些坑原则7:理解短小方法的优势原则8:选择变量初始化而...原创 2018-12-03 11:55:39 · 615 阅读 · 0 评论 -
《随笔二十》——C#中的 “ 参数数组 (关键字 params) 引用参数 (ref) 输出参数 (out)”
目录参数数组 (关键字 params)引用参数 (ref)输出参数 (out)其他结构中的变量的作用域委托 (delegate )● 返回值通常是函数执行的一些处理的结果,当执行到 return 语句时, 程序会立即返回调用代码, return 语句后面的代码都不会执行。● 执行一行代码的函数可以使用函数 C# 6 引入的一个功能, 使用 =>(Lambda 箭...原创 2018-10-23 11:56:43 · 444 阅读 · 0 评论 -
《随笔二》——C#中的“readonly 修饰符 、”
readonly 修饰符namespace Ch05Ex03{ class RandomNum { const int cc = 200; //const字段只可以在字段的声明语句中初始化 readonly double aa = 3.14; //提供初始值 readonly int bb; // 未提供 ...原创 2018-11-10 09:04:21 · 525 阅读 · 0 评论 -
《随笔三》——C#中的“ 索引器”
目录索引器什么是索引器声明索引器索引器的使用索引器的set访问器索引器的get访问器索引器与属性的比较接口中的索引器索引器什么是索引器: 索引器是一组get 和 set 访问器, 与属性类类似。索引器和属性相同点:和属性一样,索引器不用分配内存来存储。 索引器和属性都主要被用来访问其它数据成员, 它们与这些成员数据相关联,并可以提供...原创 2018-11-10 10:39:16 · 686 阅读 · 0 评论 -
《随笔四》——C#中的 “ 索引器和属性的相同点和不同点、索引器与数组的区别、索引器的重载 ”
目录索引器和属性的相同点和不同点索引器与数组的区别索引器的重载关于索引器的详细请看这里《随笔三》——C#中的“ 索引器” https://blog.youkuaiyun.com/qq_34536551/article/details/83926260索引器(Indexer)索引器允许类或结构的实例就像数组一样进行索引。索引器类似于属性,不同之处在于它们的取值函数采用参数。索引器允许类...原创 2018-11-11 10:11:46 · 422 阅读 · 0 评论 -
《随笔六》——C#中的 “属性和索引器中的 get 和 set 访问器的访问修饰符”
目录属性和索引器中的 get 和 set 访问器的访问修饰符属性和索引器中的 get 和 set 访问器的访问修饰符● 索引器和属性自带 get 和 set 访问器, 在默认的情况下: 如果一个属性有public 访问级别, 那么它的那个两个访问器都有同样的访问级别。 索引器也一样。● 不过我们也可以为两个访问器分配不同的访问级别。下面看一个示例程序:namesp...原创 2018-11-11 11:34:38 · 1177 阅读 · 0 评论 -
《随笔五》——C#中的 —— “ 静态成员的生存期 、静态成员函数、成员常量”
目录静态成员的生命期静态成员函数成员常量常量与静态量先看一个静态字段的示例:namespace Ch05Ex03{ class Persion { int Mem1; static int Mem2; //私有静态成员 static Persion() { Mem2 ...原创 2018-11-12 09:15:29 · 689 阅读 · 0 评论 -
《随笔七》——C#中的 “ 属性 、 静态属性 ”
目录属性使用属性利用 set 和 get 访问器 执行其它运算只读和只写属性属性和公共字段自动实现属性静态属性属性属性是代表类的实例或类中的一个数据项的成员。属性指的是一组两个匹配的、称为访问器的方法:public 返回类型 标识符{ set 访问器为属性赋值 get 访问器为属性获取值}注意: public 这样的修饰符是可选...原创 2018-11-12 10:28:46 · 518 阅读 · 0 评论 -
《随笔十二》——C#中的 “ 一维数组、矩形数组、交错数组(锯齿数组)”
目录数组的类型数组的 Rank、Length 操作定义和初始化数组的不同方式定义和初始化矩形数组隐式类型数组 (var关键字)初始化和定义交错数组(锯齿数组)交错数组中的矩形数组比较矩形数组 和交错 数组数组实际上是由一个变量名称表示的一组同类型的数据元素,是一组相同类型的集合。 我们首先了解一下数组中的一些重要定义开始:秩/ 维度 : 数组可以有...原创 2018-11-21 19:01:34 · 903 阅读 · 0 评论 -
《随笔十一》——C#中的 “ 枚举、位标志 ”
目录枚举枚举值与整型值的转换C++中的枚举和C#的枚举的区别枚举枚举是由程序员自定义的类型:与结构一样,枚举是值类型, 因此直接存储它们的数据,而不是分开存储引用和数据。 枚举只有一种类型的成员: 命名的整数值常量。枚举: 允许定义一个 枚举类型名,然后用枚举类型名声明的变量,其变量的值只能取自 括号内的这些标识符。enum 枚举类型标识符 : 可取的基...原创 2018-11-19 12:10:13 · 508 阅读 · 0 评论 -
《随笔八》——C#中的 “ 显式和隐式转换、装箱转换、拆箱转换、用户自定义转换、is运算符、as运算符”
目录什么是转换转换的类型 (289P)隐式转换 (287P)显式转换 (288P)使用关键字 checked 和 unchecked 来设置“ 溢出检测上下文” (291P)checked 和 unchecked 运算符(291P)checked 和 unchecked 语句 (292P)显式数字转换 (292P)整数类型到整数类型 (293P)float...原创 2018-11-15 09:24:14 · 868 阅读 · 0 评论 -
《随笔九》——C#中的 “ typeof运算符 和 GetType() 函数”
C#中任何对象都具有GetType()方法,x.GetType(),其中x为变量名。它的作用和typeof()相同,返回Type类型的当前对象的类型。typeof(x)中的x,必须是具体的类名、类型名称等,不可以是变量名称;GetType()是基类System.Object的方法,因此只有建立一个实例之后才能够被调用.System.Type.GetType(),有两个重载方法,...原创 2018-11-15 10:07:32 · 577 阅读 · 0 评论 -
《随笔十三》——C#中的 “ foreach 语句”
目录迭代变量是只读的交错数组使用foreach 循环foreach 语句允许我们依次访问某个序列中的元素,并且不存在访问非法元素的危险。 不需要考虑该序列中有多少个元素, 并可以确保将在循环中使用每个元素。 语法为:foreach (Type Indentifier in ArrayName){ //Satement}或者foreach (var In...原创 2018-11-22 10:15:35 · 276 阅读 · 0 评论 -
《随笔十四》——C#中的 “ 数组中有用的属性 和 方法 ”
目录Clone 方法点击这里进入官方文档了解 C# 中 Arrayd 属性和方法C# 数组从 System.Array 类继承, 它们可以从基类继承很多有用的属性和方法,如图:namespace HelloWorld_Console{ class Program { static void PrintArray(int []a) ...原创 2018-11-22 11:34:28 · 257 阅读 · 0 评论 -
《随笔十》——C#中的 “ 结构 ”
目录结构是值类型构造函数静态构造函数不可以在结构中声明字段,然后同时初始化字段 (203P)结构作为返回值 和 参数结构是值类型结构是自定义类型,虽然与类相似,但是还是有区别的:类是引用类型,而结构是值类型。 枚举也是值类型。 结构是隐式密封的,它们不能被派生。 结构类型的变量不能为null, 类是引用类型,类实例可以设置为null。 两个结构的变量...原创 2018-11-17 10:19:22 · 183 阅读 · 0 评论 -
《随笔十六》——C#中的 “ 虚函数 ”
目录使用基类的引用虚方法 和覆写方法覆写标记为override 的方法覆盖属性构造函数初始化语句使用基类的引用派生类的实例由基类的实例加上派生类新增的成员组成。 派生类的引用指向整个类对象,包括基类部分。如果有一个派生类对象, 就可以获取派生类对象的基类部分的引用。下面的代码示例 使用派生类对象的基类部分的引用来访问对象。namespace Hello...原创 2018-12-01 09:51:23 · 406 阅读 · 0 评论 -
《随笔十九》——C#中的 “ 委托 、 Lambda 表达式”
目录什么是委托使用委托的步骤 (239P)给委托赋值 (242P)使用 + 运算符来组合委托 (243P)使用 += 运算符为委托添加方法 (243P)运算符 -= 运算符为委托移除方法 (244P)调用委托调用带返回值的委托 (246P)调用带引用(ref)参数的委托 (247)匿名方法使用匿名方法 (249P)匿名方法的语法Lambda 表...原创 2018-12-04 11:51:39 · 368 阅读 · 0 评论 -
《随笔十五》——C#中的 “ C#中的类定义、接口定义、屏蔽基类成员、 ”
目录C#中的类定义接口的定义屏蔽基类成员基类访问C#中的类定义class MyClass{ //Members} 这样定义一个类后,就可以在项目中能访问该定义的其他位置对该类进行实例化。 在默认情况下, 类是内部的(internal)—— 即只有当前工程中的代码能够访问。 可以使用关键字 internal 写在 class 的前面 来显式指定这一点...原创 2018-11-28 11:49:46 · 567 阅读 · 2 评论 -
《随笔十七》——C#中的 “ 抽象类 、成员访问修饰符、静态类 、sealed 密封类”
目录 抽象类 和 抽象成员成员访问修饰符 抽象类 和 抽象成员抽象成员是一个被设计为被覆写的成员函数, 抽象成员有如下特征:成员函数、属性、索引器、事件等都可以被声明为抽象成员。 字段 和常量不能不能声明为抽象成员。 必须用 abstract 修饰符修饰。 不能有实现代码块。 抽象成员的代码用分号表示。抽象类只能被继承,不能创建抽象类的实例,抽象类的cla...原创 2018-12-01 11:52:04 · 794 阅读 · 0 评论