BlogArticles/2024-04/C#命名规范 for Uni.md

62 lines
2.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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