dotnet 设计规范 · 抽象类】的更多相关文章

X 不要定义 public 或 protected internal 访问的构造函数.默认 C# 语言不提供抽象类的公开构造函数方法. 如果一个构造函数定义为公开,只有在开发者需要创建这个类的实例的时候才可以这样做.因为开发者不应该创建一个抽象类的实例,所以如果一个抽象类可以创建实例就是一个不好的实现,容易让开发者做出不恰当代码. ✓ 定义抽象类的构造函数为 protected 或 internal 访问 定义抽象类的构造函数为 protected 是比较推荐的方法,因为定义为 protecte…
X 不要定义 public 或 protected internal 访问的构造函数.默认 C# 语言不提供抽象类的公开构造函数方法. 如果一个构造函数定义为公开,只有在开发者需要创建这个类的实例的时候才可以这样做.因为开发者不应该创建一个抽象类的实例,所以如果一个抽象类可以创建实例就是一个不好的实现,容易让开发者做出不恰当代码. ✓ 定义抽象类的构造函数为 protected 或 internal 访问 定义抽象类的构造函数为 protected 是比较推荐的方法,因为定义为 protecte…
严格来说,只有一个类被其他的类继承,那么这个类就是基类.在很多时候,基类的定义是提供足够的抽象和通用方法和属性.默认实现.在继承关系中,基类定义在上层抽象和底层自定义之间. 他们充当抽象实现的实现帮助者,充当框架的部分.例如,处于框架的列表接口 IList 定义.定义一个 IList 在框架中具有重要的作用,可以抽象出具有数组列表的类型,有很多类都继承这个接口,如System.Collections.ObjectModel.Collection.:System.Collections.Objec…
X 不要给结构体默认构造函数 默认的C#编译器也不让开发者定义有默认构造的结构体 X 不要定义易变的属性 易变的属性指的是在调用属性返回值的时候返回的是新的实例,易变的属性会有很多的问题. ✓ 需要确定数据的状态,定义为 0.false.null 是正确的 防止开发者不从构造函数进行赋值 ✓ 建议结构体继承 System.IEquatable 因为默认的比较使用的是引用比较,而结构体在使用经常会被复制,如果一个复制的结构体和原来的比较,一般开发者会认为返回是相等.所以需要重写判断.而且重写 IE…
本文告诉大家数组定义需要知道的规范,本文翻译 docs dotnet ✓ 建议在公开的 API 使用集合而不是数组.集合可以提供更多的信息. X 不建议设置数组类型的字段为只读.虽然用户不能修改字段,但是可以修改字段里面的元素.如果需要一个只读的集合,建议定义为只读集合. ✓ 建议定义多维数组为一维,因为多维数组的性能比一维差.如果需要定义多维数组,请使用 int[,] foo = new int[n, j] ,请不要使用 int[][] foo = new int[n][] 参见:docs/a…
严格来说,只有一个类被其他的类继承,那么这个类就是基类.在很多时候,基类的定义是提供足够的抽象和通用方法和属性.默认实现.在继承关系中,基类定义在上层抽象和底层自定义之间. 他们充当抽象实现的实现帮助者,充当框架的部分.例如,处于框架的列表接口 IList 定义.定义一个 IList 在框架中具有重要的作用,可以抽象出具有数组列表的类型,有很多类都继承这个接口,如System.Collections.ObjectModel.Collection.:System.Collections.Objec…
✓ 建议在公开的 API 使用集合而不是数组.集合可以提供更多的信息. X 不建议设置数组类型的字段为只读.虽然用户不能修改字段,但是可以修改字段里面的元素.如果需要一个只读的集合,建议定义为只读集合. ✓ 建议定义多维数组为一维,因为多维数组的性能比一维差.如果需要定义多维数组,请使用 int[,] foo = new int[n, j] ,请不要使用 int[][] foo = new int[n][]…
本文是记录我从入门到放弃写的博客 博客包括 C#.WPF.UWP.dotnet core .git 和 VisualStudio 和一些算法,所有博客使用 docx 保存 下载:dotnet 从入门到放弃的 500 篇合集 C# 的博客 WPF 的博客 UWP 的博客 dotnet core 的博客 git 相关博客 所有博客 .net Framework 源代码 · Ink .net Framework 源代码 · ScrollViewer .net remoting 使用事件 .net re…
title author date CreateTime categories dotnet 从入门到放弃的 500 篇文章合集 lindexi 2018-08-10 19:16:52 +0800 2018-05-25 21:18:45 +0800 dotnet 本文是记录我从入门到放弃写的博客 博客包括 C#.WPF.UWP.dotnet core .git 和 VisualStudio 和一些算法,所有博客使用 docx 保存 下载:dotnet 从入门到放弃的 500 篇合集-CSDN下载…
title author date CreateTime categories dotnet 设计规范 · 结构体定义 lindexi 2018-03-04 17:48:44 +0800 2018-2-13 17:23:3 +0800 设计规范 规范 X 不要给结构体默认构造函数 默认的C#编译器也不让开发者定义有默认构造的结构体 X 不要定义易变的属性 易变的属性指的是在调用属性返回值的时候返回的是新的实例,易变的属性会有很多的问题. ✓ 需要确定数据的状态,定义为 0.false.null…