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命名法
|
||
}
|
||
```
|
||
|
||
在充分理解以上约定的基础上,清晰胜于简洁 |