dotnet core 编程规范

标签: dotnet | 发表时间:2021-10-18 19:07 | 作者:
出处:https://blog.lindexi.com/

本文实际只是翻译 .NET Core foundational libraries 官方文档的编码风格。

.NET Core foundational libraries项目使用的编程规范默认就是 VisualStudio 默认样式。

花括号

花括号使用 Allman style 风格,所有的花括号在新的一行开始。

关于 Allman style 就是如下,花括号放在下一行,而且花括号不进行缩进,花括号里面的代码缩进。

    while (x == y)
{
    something();
    somethingelse();
}

但是对于单行的语句,可以不添加花括号,但是请把它放在同一行

              if (xx == null) xx = new Foo();

单行语句同样建议添加花括号避免 苹果的bug

如果不添加花括号,一定不要在嵌套时使用。

空格

使用 4 个空格作为一个缩进,而不是使用 tab

字段

所有的字段使用 _camelCase风格,而且尽可能使用 readonly 。在 internal 和 private 访问的字段添加 _ 前缀,对于静态的字段添加 s_前缀,对于线程静态的字段添加 t_前缀。如果使用了静态的字段而且可以设置 readonly ,需要把 readonly 放在 static后面。

最好不要公开字段,如果需要公开那么使用PascalCasing风格而且不添加前缀。

我不是很赞同对字段的风格,但是因为本文是翻译,我就没有添加自己的理解。

限定

不要添加 this. ,完全是没必要的。

我也不是很赞同这个,因为如果使用扩展方法,需要使用 this.

访问

显示指定访问,即使访问是默认的,如 private string _foo ,而不是 string _foo。访问需要放在最前面,如 public abstract,不建议 abstract public

默认的访问是可能修改的

命名空间

对于引用需要放在文件的开头。

空行

禁止超过一行的空白,不可以使用两行空白。

不要使用两行分割两个类型。

多余空格

禁止在一行结束添加多余空格。通过 VisualStudio 的查看空格(ctrl+E,S)可以看到空格

参照现有

如果一个文件在格式规范定义之前已经有自己的规范,尽可能参照文件现有的规范而不是去修改他。

新的修改参照现有的文件的格式。

我一点都不赞同。

明显的类型

只能在明显可以知道对象类型可以使用 var ,如 var stream = new FileStream(...) 。在无法明显知道对象类型不可以使用 var ,如 var stream = OpenStandardInput()

关键字

使用语言的关键字代替 BCL 类型,如使用 int, string, float代替 Int32StringSingle

常量命名

对于所有的常量,包括静态只读,使用 PascalCasing 风格。如果需要使用 C++ 或其他代码对于命名有要求才可以使用其他的方法。

变量名字符串

如果使用变量名的常量,必须使用 nameof 关键字。

字段结构

字段必须放在一个类声明的最前面。

我一点都不赞成,因为谁会去管一个类的字段,我关心的是构造函数和公开属性、函数。

其他字符

如果在代码使用了 非 ascii 的字符,那么需要把他转换为 \uxx 方式,这样可以解决一些非 ascii 因为编译器分析的问题。

当然上面的要求只是对于编译的代码

Label

使用 Label 缩进一个小于当前缩进的标签

原文: coding-style.md

相关 [dotnet core 编程] 推荐:

dotnet core 编程规范

- - 林德熙
本文实际只是翻译 .NET Core foundational libraries 官方文档的编码风格. 在 .NET Core foundational libraries项目使用的编程规范默认就是 VisualStudio 默认样式. 花括号使用 Allman style 风格,所有的花括号在新的一行开始.

dotnet core 应用是如何跑起来的 通过AppHost理解运行过程

- - 林德熙
在 dotnet 的输出路径里面,可以看到有一个有趣的可执行文件,这个可执行文件是如何在框架发布和独立发布的时候,找到 dotnet 程序的运行时的,这个可执行文件里面包含了哪些内容. 在回答上面的问题之前,请大家尝试打开 C:\Program Files\dotnet\sdk\5.0.100\AppHostTemplate\ 这个文件夹.

dotnet 一些代码审查套路

- - 林德熙
本文记录一些代码审查套路,在看到小伙伴写出某些代码的时候可以告诉他这样写有锅. 我在各个项目里面进行代码审查,我维护了很多个项目. 这是我截图某一天的一个核心项目的在 Gitlab 上的 MR 情况,我觉得头像应该是不用保密的,这样知道的小伙伴自然就知道了. 对了,那些挂了超过3天的都是标记 WIP 还在开发中的.

KISSY Core 预览版

- MArCoRQ - 岁月如歌
KISSY 是淘宝新一代前端 UI 类库,陆陆续续经过大半年的开发,终于完成了核心部分. KISSY 借鉴了 YUI3 的代码组织思想,尝试融合 jQuery/YUI2/ExtJS 等类库的优点. 目前才刚起步,下面是相关话题:. 请先看个 ppt, 或许能解答你的疑惑:前端_UI_类库_KISSY_赛马竞标书.pptx.

是否该用 Core Data?

- kezhuw - jjgod / blog
Core Data 是 Cocoa 里面一套非常受欢迎的框架,从 Mac OS X 10.4 提供以来,在 10.5 中引入了完善的 schema 迁移机制,再到 iPhone OS 3.0 时被引入 Cocoa Touch,这套完善的框架都被认为是管理大量结构化数据所首选的 Cocoa 框架,尤其是因为使用 Core Data 能大大减少需要手工编写的代码量,就使它更受开发者欢迎了.

solr5 配置 与 创建core

- - 数据库 - ITeye博客
准备安装包(保证tomat能正常启动).   2.1 启动tomcat.   2.2 将solr/server/webapps/solr.war  拷贝到tomcat的webapps下.   2.3 停止tomcat,将solr.war删除. webapps下会有solr文件夹.   2.4 在tomcat\webapps\solr下创建solr_home.

Debugging .NET Core on Linux with LLDB | RayDBG

- -
The LLDB debugger is conceptually similar to the native Windows debugging tools in that it is a low level and command live driven debugger. Part of the reason the .NET Core team chose the LLDB debugger was for its extensibility points that allowed them to create the SOS plugin which can be used to debug .NET core applications.

10年DotNet老程序员推荐的7个开发工具

- - 程序师
做.NET软件工作已经10年了,从程序员做到高级程序员,再到技术主管,技术总监. 见证了Visual Studio .NET 2003,Visul Studio 2005, Visual Studio Team System 2008, Visual Studio 2010 Ultimate,Visual Studio 2013一系列近5个版本的变化与亲自使用.

Analyzing a .NET Core Core Dump on Linux | All Your Base Are Belong To Us

- -
I thought this walkthrough might be useful if you find yourself in the same boat, because, to be quite honest, I didn’t find it trivial.. A lot of distros will have something preconfigured, but the simplest approach is to just put a file name in the /proc/sys/kernel/core_pattern file:.

Core i7-2700K:要提速 也要涨价

- Darth Noctis - cnBeta.COM
多年来,Intel处理器一直坚持着非常稳固的价格点,每每新品发布都在提升频率的同时保持价格不变,旧品则或降价或退市,但偶尔也会有例外,比如将在一个月后面世的Core i7-2700K.