首页 > 其他分享 >Google命名规范

Google命名规范

时间:2024-07-01 12:09:24浏览次数:23  
标签:Google space int 规范 long 命名 diff PascalCase public

Google 风格指南中的 C# |风格指南 --- C# at Google Style Guide | styleguide

命名规则

Code 

1.类、方法、枚举、公共字段、公共属性、命名空间的名称: PascalCase 

2.局部变量、参数的名称: camelCase 

3.私有、受保护、内部和受保护的内部字段和属性的名称: _camelCase

4.命名约定不受 const、static、readonly 等修饰符的影响

5.对于大小写,“单词”是没有内部空格的任何内容,包括首字母缩略词。例如, MyRpc 而不是 MyRPC

6.接口名称以 I 开头,例如 IInterface

Files 文件

1.文件名和目录名是 PascalCase ,例如 MyFile.cs

2.在可能的情况下,文件名应与文件中主类的名称相同,例如 MyClass.cs

3.通常,每个文件首选一个核心类。

空格规则

1.每行最多一个语句

2.每个语句最多一个赋值

3.缩进 2 个空格,无制表符。

4.列限制:100

5.开大括号前不换行

6.一元运算符与其操作数之间没有空格。运算符和所有其他运算符的每个操作数之间的一个空格。

using System;                                       // `using` goes at the top, outside the
                                                    // namespace.

namespace MyNamespace {                             // Namespaces are PascalCase.
                                                    // Indent after namespace.
  public interface IMyInterface {                   // Interfaces start with 'I'
    public int Calculate(float value, float exp);   // Methods are PascalCase
                                                    // ...and space after comma.
  }

  public enum MyEnum {                              // Enumerations are PascalCase.
    Yes,                                            // Enumerators are PascalCase.
    No,
  }

  public class MyClass {                            // Classes are PascalCase.
    public int Foo = 0;                             // Public member variables are
                                                    // PascalCase.
    public bool NoCounting = false;                 // Field initializers are encouraged.
    private class Results {
      public int NumNegativeResults = 0;
      public int NumPositiveResults = 0;
    }
    private Results _results;                       // Private member variables are
                                                    // _camelCase.
    public static int NumTimesCalled = 0;
    private const int _bar = 100;                   // const does not affect naming
                                                    // convention.
    private int[] _someTable = {                    // Container initializers use a 2
      2, 3, 4,                                      // space indent.
    }

    public MyClass() {
      _results = new Results {
        NumNegativeResults = 1,                     // Object initializers use a 2 space
        NumPositiveResults = 1,                     // indent.
      };
    }

    public int CalculateValue(int mulNumber) {      // No line break before opening brace.
      var resultValue = Foo * mulNumber;            // Local variables are camelCase.
      NumTimesCalled++;
      Foo += _bar;

      if (!NoCounting) {                            // No space after unary operator and
                                                    // space after 'if'.
        if (resultValue < 0) {                      // Braces used even when optional and
                                                    // spaces around comparison operator.
          _results.NumNegativeResults++;
        } else if (resultValue > 0) {               // No newline between brace and else.
          _results.NumPositiveResults++;
        }
      }

      return resultValue;
    }

    public void ExpressionBodies() {
      // For simple lambdas, fit on one line if possible, no brackets or braces required.
      Func<int, int> increment = x => x + 1;

      // Closing brace aligns with first character on line that includes the opening brace.
      Func<int, int, long> difference1 = (x, y) => {
        long diff = (long)x - y;
        return diff >= 0 ? diff : -diff;
      };

      // If defining after a continuation line break, indent the whole body.
      Func<int, int, long> difference2 =
          (x, y) => {
            long diff = (long)x - y;
            return diff >= 0 ? diff : -diff;
          };

      // Inline lambda arguments also follow these rules. Prefer a leading newline before
      // groups of arguments if they include lambdas.
      CallWithDelegate(
          (x, y) => {
            long diff = (long)x - y;
            return diff >= 0 ? diff : -diff;
          });
    }

    void DoNothing() {}                             // Empty blocks may be concise.

    // If possible, wrap arguments by aligning newlines with the first argument.
    void AVeryLongFunctionNameThatCausesLineWrappingProblems(int longArgumentName,
                                                             int p1, int p2) {}

    // If aligning argument lines with the first argument doesn't fit, or is difficult to
    // read, wrap all arguments on new lines with a 4 space indent.
    void AnotherLongFunctionNameThatCausesLineWrappingProblems(
        int longArgumentName, int longArgumentName2, int longArgumentName3) {}

    void CallingLongFunctionName() {
      int veryLongArgumentName = 1234;
      int shortArg = 1;
      // If possible, wrap arguments by aligning newlines with the first argument.
      AnotherLongFunctionNameThatCausesLineWrappingProblems(shortArg, shortArg,
                                                            veryLongArgumentName);
      // If aligning argument lines with the first argument doesn't fit, or is difficult to
      // read, wrap all arguments on new lines with a 4 space indent.
      AnotherLongFunctionNameThatCausesLineWrappingProblems(
          veryLongArgumentName, veryLongArgumentName, veryLongArgumentName);
    }
  }
}

 

 

 

标签:Google,space,int,规范,long,命名,diff,PascalCase,public
From: https://www.cnblogs.com/ZkbFighting/p/18277790

相关文章

  • 前端vue/react通用工程化eslint prettier stylelint husky项目规范(新手入门详细教程)
    前言本文章内的项目基于vite+react+ts搭建,但通篇并未涉及react的东西,所以可以通用。适合新手入门的工程化项目规范,最小化的完成代码规范和git提交规范,开发工具使用vscode。为什么是最小化?本意是为了让大家都能看懂入手这些规范,很多文章中,都长篇进行自定义的配置,其......
  • 揭秘工作手机使用管理办法:打造规范、高效的工作环境
    点击这里可进入官网——【无极工作手机官网】http://rpaab.com随着科技的飞速发展和智能手机的普及,工作手机已经成为现代职场中不可或缺的一部分。然而,如何有效地管理工作手机使用,确保其在提高工作效率的同时,不干扰到正常的工作秩序和员工的私人生活,成为了一个亟待解决的问题......
  • SpringMVC配置文件的位置和命名
    配置web.xml文件时我们需要配置SpringMVC框架的配置文件,该文件有两种配置方式。第一种是默认配置,第二种是带配置参数的配置。1.1默认配置方式SpringMVC框架有它自己的配置文件,该配置文件的名字默认为:-servlet.xml,默认存放的位置是WEB-INF目录下。如果采用这种方式意味着文件的......
  • TPCH模型规范、测试说明及22条语句
    TPCH模型规范、测试说明及22条语句  使用TPC-H进行性能测试,需要有很多工作配合才能获得较高性能,如建立索引,表数据的合理分布(使用表空间和聚簇技术)、广播表或分布式表(会严重的影响性能)、列存(会严重的影响性能)、压缩(不同的压缩空间占用会差异非常大,gp默认lz4,也支持zstd)等......
  • 油氢合建加氢站建设与设计规范探讨
        加氢站与加油站合建可以有效解决用地审批困难、选址受限、远离终端客户及管理成本高等问题。通过功能设施分区,共用给水和排水、供电、站控及安防系统,可最大限度地降低合建站建设管理成本,节约土地资源,实现加油与加氢合建站的可持续发展。简要分析了油氢合建站的优势......
  • CentOS Server安装Google-Chrome浏览器
    配置yum源在目录/etc/yum.repos.d/下新建文件google-chrome.repovim/etc/yum.repos.d/google-chrome.repo添加如下内容[google-chrome]name=google-chromebaseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearchenabled=1gpgcheck=1gpgkey=https://dl......
  • 【小沐学GIS】Google的kml文件的读写(C++、Python)
    文章目录1、简介1.1kml简介1.2功能点1.2.1地标1.2.2地面叠加层1.2.3路径1.2.4多边形2、下载和编译3、C++测试4、Python测试4.1安装库4.2测试14.2测试24.3测试3结语1、简介https://developers.google.cn/kml/documentation/kmzarchives?hl=zh-cn1.1kml......
  • 泄漏检测(LDAR)在建档和检测过程中造假套路和不规范行为汇总
    第一章建档环节造假和不规范一、企业行为:企业为了节约检测费,采取部分建档,部分密封点检测的行为二、第三方检测公司不规范行为:1、台账信息不准确,密封点命名不准确,2、密封点建档中存在必填项存在缺失,不完整,3、不可......
  • 未命名
    阿什顿粉申达股份sad生地方阿什顿粉阿什顿hh5671234666是打发记得找个女朋友天凉了,记得加衣喔今日份单词打卡✅2024-01-12了解treeshaking和dce✅2024-01-12✅2024-01-12[]-[][][][x]-[]-[ ][][][]......
  • Shell编程规范与变量
    1.1Shel脚本概述        在一些复杂的Linux维护工作中,大量重复性的输入和交互操作不仅费时费力,而且容易出错,而编写一个恰到好处的Shel脚本程序,可以批量处理、自动化地完成一系列维护任务,大大减轻管理员的负担。1.1.1Shell的作用        Linux系统......