团队内部若能统一代码风格对于日后的项目维护大有裨益,但面对厚达十几甚至几十页的代码风格规范,开发人员难免产生抵触心理。Python和Go等在语言层面就对代码风格作了一定的约束,但C#并没有,为解决这个问题,我们可以在VS中设置团队内部要统一采用的代码风格。

文中所用VS版本信息如下:

 

设置代码风格

在VS搜索框中搜索Code Style

 
 

我们可以自定义代码风格(注意自定义规则顺序,是由上至下以此判断是否符合规则)以及对不符合风格代码做怎样的处理,这里是按照错误进行处理

 

可以看到对于不符合规范的命名VS会报错并给出改建建议:

 

注意,这里的错误是IDE1006:Naming rule violation,编译时依然能通过(没找到在哪里设置不允许通过编译):

 

下面是代码风格示例代码,仅供参考:

class Person
{
private const string FIRST_NAME = "firstName"; private static string StaticField = "static field"; private readonly string ReadOnlyField = "readOnlyField"; private string _privateField; public Person(string privateField)
{
_privateField = privateField;
} public void Method(int parameters)
{
try
{
var local = "";
WriteLine(parameters);
}
catch (Exception)
{
}
finally
{
}
}
} delegate void DelegateType(int i); struct ValueType
{
public event DelegateType DelegateTypeEvent; public void DelegateType()
{
if (DelegateTypeEvent != null)
{
for (var i = ; i < ; i++)
{
DelegateTypeEvent(i);
}
}
else
{
throw new NullReferenceException();
}
}
} interface IPerson
{
void Say(string parameters);
} enum WeekDays
{
Monday,
Tuesday
}

工具推荐

阿里团队的适用于JAVA代码风格检测插件P3C安装到IDEA中后,会对代码风格进行检测并给出改进建议

小结

统一的代码风格很重要,在编码时我们要求代码结构灵活易扩展,但对于代码风格应当讲究“死板”,不可灵活多变。

若团队内部的任一成员拿到项目代码一眼望去感觉像自己写的,那么我们就可以认为团队内的代码风格已经统一了。目前,我还不赞成过于苛求细节的代码风格约束(这种想法将来可能会变)。

推荐阅读

Visual Studio 2017 C# productivity guide

Visual Studio 代码风格约束的更多相关文章

  1. 工欲善其事必先利其器系列之:更换Visual Studio代码风格.

    前言:如果你厌倦了默认的VS的背景颜色,可以在studiostyl下载.vssettinggs文件,将其导入VS中,黑色的风格还是蛮不错的,如果用的12的话就没这个必要了我觉得. 从网站下载后会得到扩 ...

  2. 11个Visual Studio代码性能分析工具

    软件开发中的性能优化对程序员来说是一个非常重要的问题.一个小问题可能成为一个大的系统的瓶颈.但是对于程序员来说,通过自身去优化代码是十分困难的.幸运的是,有一些非常棒的工具可以帮助程序员进行代码分析和 ...

  3. 在Visual Studio代码中使用Flask

    Flask是一个用于Web应用程序的轻量级Python框架,它提供了URL路由和页面呈现的基础知识. Flask被称为“微”框架,因为它不直接提供表单验证,数据库抽象,身份验证等功能.这些功能由称为F ...

  4. .NET 11 个 Visual Studio 代码性能分析工具

    原文地址 软件开发中的性能优化对程序员来说是一个非常重要的问题.一个小问题可能成为一个大的系统的瓶颈.但是对于程序员来说,通过自身去优化代码是十分困难的.幸运的是,有一些非常棒的工具可以帮助程序员进行 ...

  5. visual studio snippets风格

    snippet挺好用,但是不是我喜欢的那种风格,比如if是这样的 if () { XX } 而我比较习惯这种: if () { XX } 可以这么做: 工具(Tools)——代码段管理器(Code S ...

  6. 11 个 Visual Studio 代码性能分析工具

    软件开发中的性能优化对程序员来说是一个非常重要的问题.一个小问题可能成为一个大的系统的瓶颈.但是对于程序员来说,通过自身去优化代码是十分困难的.幸运的是,有一些非常棒的工具可以帮助程序员进行代码分析和 ...

  7. Visual Studio 代码格式化插件(等号自动对齐、注释自动对齐等)

    1.下载地址 插件:Code alignment  下载地址 2.介绍 Based on principles borrowed from mathematics and other discipli ...

  8. Visual Studio 代码管理器svn插件下载

    环境:Visual Studio 2010 Visual Studio的svn插件叫做VisualSVN,可自行到VisualSVN官网上下载相应版本,也可以通过vs中找到相关插件. ps:vs其他的 ...

  9. Visual Studio 代码折叠快捷键(摘要)

    代码编辑器的展开和折叠代码确实很方便和实用.以下是展开代码和折叠代码所用到的快捷键,很常用: Ctrl + M + O: 折叠所有方法 Ctrl + M + M: 折叠或者展开当前方法 Ctrl +  ...

随机推荐

  1. Acegi框架

    Acegi(Acegi Security)框架,是一个能为基于Spring的企业应用提供强大而灵活安全访问控制解决方案的框架,Acegi已经成为 Spring官方的一个子项目,所以也称为Spring ...

  2. ABP框架系列之六:(Value-Objects-值对象)

    Introduction "An object that represents a descriptive aspect of the domain with no conceptual i ...

  3. [Err] 1418 - This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creator【s

    问题:执行创建函数的sql文件报错如下: [Err] 1418 - This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA ...

  4. Python设计模式运用

    1 面向对象 2 创建型模式 3 结构型模式 4 行为型模式

  5. ZKWeb网页框架1.7正式发布

    1.7.0更新的内容有 更新项目格式到新的csproj 更新项目模板 打开新创建的Asp.Net Core项目将需要VS 2017,Asp.Net和Owin项目仍可以用VS 2015 补上插件模板的P ...

  6. The MAC is invalid

    在使用laravel框架进行网站开发时,我们会使用laravel的Crypt类对用户的密码进行加密来达到信息加密的目的,Crypt类会对数据加密时会依赖APP_KEY,所以当更换了APP_KEY时,再 ...

  7. shell 脚本中的当前工作目录等于执行脚本时所在的工作目录

    1. 测试脚本 在当前目录下创建 h1 h2两个文件夹 2. 在脚本所在目录执行脚本 在当前目录下创建了h1 h2两个目录 3. 在其他目录爱=下执行脚本 在其他目录下执行脚本时,在执行脚本所在的目录 ...

  8. Django创建和配置文件

    首先我们随便找一个文件 shift+鼠标右键 点击打开 Powershell 窗口 然后输入命令  django-admin startproject 项目名字 输入cd day   进入这个项目下 ...

  9. Python进程-理论

    进程定义 程序: 计算机程序是存储在磁盘上的可执行二进制(或其他类型)文件.只有把它们加载到内存中,并被操作系统调用,它们才会拥有其自己的生命周期. 进程: 进程则是表示的一个正在执行的程序.每个进程 ...

  10. 脚手架vue-cli系列五:基于Nightwatch的端到端测试环境

    不同公司和组织之间的测试效率迥异.在这个富交互和响应式处理随处可见的时代,很多组织都使用敏捷的方式来开发应用,因此测试自动化也成为软件项目的必备部分.测试自动化意味着使用软件工具来反复运行项目中的测试 ...