62 lines
2.6 KiB
Markdown
62 lines
2.6 KiB
Markdown
|
---
|
|||
|
{
|
|||
|
title: "C#命名规范 for Uni",
|
|||
|
description: "C#命名规范:标识符以字母或下划线开头,可含Unicode字符。接口以\"I\"开头(如`IMyInterface`),类、方法、常量用PascalCase,私有字段以\"_\"加camelCase,局部变量和参数用camelCase。特性以\"Attribute\"结尾。清晰命名优先于简洁。",
|
|||
|
draft: false,
|
|||
|
type: "article",
|
|||
|
created_at: "2024-04-08T23:00:00+08:00",
|
|||
|
published_at: "2024-04-08T23:29:00+08:00",
|
|||
|
updated_at: [ "2024-04-08T23:29:00+08:00"],
|
|||
|
category: 'Uni',
|
|||
|
tags: [ "C#" ],
|
|||
|
tech_stack: [ "C#" ],
|
|||
|
tech_stack_percent: [ 1 ],
|
|||
|
tech_stack_icon_names: [ "mdi:language-csharp" ],
|
|||
|
tech_stack_theme_colors: [ "#a179dc" ],
|
|||
|
}
|
|||
|
---
|
|||
|
!!!warning Legacy Article 过时的文章
|
|||
|
此文章从旧博客迁移而来,编写时技术水平有限,仅供参考
|
|||
|
!!!
|
|||
|
|
|||
|
# C#命名规范
|
|||
|
该文是作者对[微软文档](https://learn.microsoft.com/zh-cn/dotnet/csharp/fundamentals/coding-style/identifier-names)的见解,更多详细信息请参照原文档
|
|||
|
|
|||
|
## 标识符 (变量)
|
|||
|
· 标识符必须以字母或下划线(_)开头
|
|||
|
|
|||
|
· 标识符可以包含 Unicode 字母字符、十进制数字字符、Unicode 连接字符、Unicode 组合字符或 Unicode 格式字符。
|
|||
|
|
|||
|
· 你可以在关键字前加'@',声明一个与关键字相同的变量,例如:@if 是变量 if。我个人不太建议这么做。
|
|||
|
|
|||
|
## 命名约定
|
|||
|
在介绍命名约定之前,我将先介绍Pascal Case 和 Camel Case
|
|||
|
### Pascle Case
|
|||
|
形如 DataChecker, ValueCoordinate 之类的命名。将单词间空格删去,所有首字母大写,即是Pascle Case
|
|||
|
### Camel Case
|
|||
|
Camel Case,又称驼峰法,与Pascal Case及其类似,只是第一个字母不在大写,例如dataChecker, valueCoordinate
|
|||
|
|
|||
|
### True 命名约定
|
|||
|
``` C#
|
|||
|
public interface IMyInterface //接口使用I作为开头,其余部分使用Pascle命名法
|
|||
|
{
|
|||
|
public void MyMethod(); //方法使用Pascle命名法
|
|||
|
}
|
|||
|
|
|||
|
public class MyAttribute : Attribute { } //特性使用Attribute结尾,其余部分使用Pascle命名法
|
|||
|
|
|||
|
public class MyClass : IMyInterface
|
|||
|
{
|
|||
|
private readonly int _myVal = 256; //私有变量以_开头,其余部分使用Camel命名法
|
|||
|
|
|||
|
public void MyMethod()
|
|||
|
{
|
|||
|
const int MyVal = 1024; //常量使用Pascle命名法
|
|||
|
int localVar = MyVal + _myVal; //局部变量使用Camel命名法
|
|||
|
}
|
|||
|
|
|||
|
public int AnotherMethod(int firstParameter) => firstParameter + _myVal; //方法参数使用Camel命名法
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
在充分理解以上约定的基础上,清晰胜于简洁
|