C#编程规范整理

小编整理了一些C#编程的一些规范,希望对大家有点用处!

1、命名方式

Pascal命名法:每个单词首字母均大写。

Camel命名法:第一个单词首字母小写,其余单词首字母大写。

2、有关类的规范

1、使用 Pascal 大小写。

2、用名词或名词短语命名类,保证类名清晰,尽量达到望文生义的境界。

3、类名称尽量少用或不用缩写,若使用了缩写一定要在注释中详细注明类的用途。

4、不要使用类型前缀,例如,类名称前加上C以表示这是一个类,如:CButton。

5 、类命名中不要使用下划线及数字。

6 、有时候虽然该类不是接口,但需要提供以字母 I 开始的类名称,此时只要 I 是作为类名称组成部分的整个单词的第一个字母,这依然是可行的。例如,类名 IdentityOrder 就是适用的。

类命名示例:

public class FlightBuilder

public class HotelInfo

public class TicketShopper

3、有关接口的规范

1、 接口使用大些字母I做前缀,其后跟名词或名词短语,以描述这个接口,名词和短语使用Pascal方式,如,接口名称 ICache。

2、接口名称尽量少用或不用缩写,保证接口名清晰,尽量达到望文生义的境界,若使用了缩写一定要在注释中详细描述接口的用途。

3、接口名称中不要使用下划线及数字。

接口命名示例:

public interface ICache

public interface IClone

4、有关枚举的规范

1、用短语命名枚举,采用Pascal方式,保证枚举名清晰,尽量达到望文生义的境界。

2、枚举名称尽量少用或不用缩写,若使用了缩写一定要在注释中详细注明枚举的用途。

3、不要在枚举名称后跟上 Enum 后缀,如:OrderFlagEnum。

4、一定不要使用汉字作为枚举值,以免多语言环境下造成莫名。

枚举命名示例:

public enum OrderFlag

{

None,

F

}

5、有关参数的规范

1、使用描述性参数名称,保证参数名称清晰,尽量达到望文生义的境界。

2、参数命名使用 Camel 方,尽量少用或不用缩写,若使用了缩写一定要在注释中详细注明参数的用途。

参数命名示例:

object GetCache(string cacheKey)

bool IsInt(string needCheckString)

6、有关方法的规范

1、用动词或动词短语命名方法名,保证方法名清晰,尽量达到望文生义的境界。

2、采用Pascal方式命名,尽量少用或不用缩写,若使用了缩写一定要在注释中详细注明方法的用途。

方法名示例:

public void ClearCache()

public char[] GetCharArray()

7、有关属性的规范

1、用名词或名词短语命名属性,保证属性名清晰,尽量达到望文生义的境界。

2、采用Pascal方式命名,尽量少用或不用缩写,若使用了缩写一定要在注释中详细注明属性的用途。

属性示例:

public string FlightNo {

get;

set;

}

8、有关变量的规范

1、所有单词大写,多个单词之间用 下划线(”_”)隔开,注意不是全角的下划线。 如

public const int PAGE_INDEX = 6;

2、用名词或名词短语命名局部变量,保证变量名清晰,尽量达到望文生义的境界。

3、采用Camel方式命名,尽量少用或不用缩写,若使用了缩写一定要在注释中详细注明变量的用途。

局部变量命名示例:

int index = 6;

string airline = string.Empty;

private string flightNo = null;

9、有关特性的规范

1、用名词或名词短语+Attribute方式命名特性,保证特性名清晰,尽量达到望文生义的境界。

2、采用Pascal方式命名,尽量少用或不用缩写,若使用了缩写一定要在注释中详细注明特性的用途。

特性命名示例:

public class ValidAttribute : Attribute

{

}

10、有关异常的规范

1、用名词或名词短语+Exception方式命名自定义异常,保证特性名清晰,尽量达到望文生义的境界。

2、采用Pascal方式命名,一定不能使用简写。

异常命名示例:

public class FlightException : ApplicationException

{

}

11、有关委托(delegate)的规范

1、用动词短语命名委托,保证委托名清晰,尽量达到望文生义的境界。

2、采用Pascal方式命名,一定不能使用简写。

委托命名示例:

delegate void PageChange( int pageIndex );

12、有关控件的命名规则

控件众多,统一的命名方式也多有冲突,开发人员记忆所有控件难免弄错,现采用默认控件类型作为前缀,前缀名称全部小写,控件名采用:类型缩写+名词短语(采用Pascal方式),虽然这样会使命名变得冗长,但是命名更加能反应出变量的意义,开发人员也不需要去强记各个控件的缩写。

控件示例:

附录:C#保留关键字:

避免使用与常用的 .NET 框架命名空间重复的类名称。例如,不要将以下任何名称用作类名称:

System、Collections。有关 .NET 框架命名空间的列表,请参阅MSDN类库。

另外,避免使用和以下关键字冲突的标识符。

4418040-8814a889978f0474.png

欢迎关注我的公众号(同步更新文章)DoNet技术分享平台

阅读原文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/272685.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用协议代理实现导航控制器UINavigationController视图之间的正向传值和反向传值...

实验说明 (1)正向传值:比如A类里地值要传给B类用,就是我们先在A类中声明一个B类对象(当然B类头文件要import过来),然后把A类中得某个 值传递给B类中得某个值(所以需要在B类中先准备一…

oracle索引自增函数,oracle生成动态前缀且自增号码的函数分享

create or replaceFunction GetInvitationNO(prev varchar2, num1 varchar2, num2 varchar2, sessionSetting varchar2)Return Varchar2Authid Current_User Is PRAGMA AUTONOMOUS_TRANSACTION;-- 需要使用“Current_User”的权限防止无法运行“Execute Immediate”命令 & …

JS字符串转换为JSON的四种方法笔记

1、jQuery插件支持的转换方式:示例:$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象2、浏览器支持的转换方式(Firefox,chrome,opera,safari,ie)等浏览器:…

iOS Block全面分析

http://my.oschina.net/leejan97/blog/268536 http://blog.csdn.net/enuola/article/details/8674063 注意事项1.内联的block中内部定义的变量 自己本身有读写权限2.block内部要修改外部变量 需要将外部变量声明__block3.Block retain是无效的,要想保留block生命周期…

win7 php redis 扩展,Windows中安装Redis及php redis扩展

Windows10环境安装Redis:1、下载Redis安装包;2、解压到自定义目录;3、windows键R,输入cmd 进入命令行,进入Redis的解压目录;4、运行:redis-server.exe redis.windows.conf 显示如下,说明启动成功…

【原创】MVC+ZTree实现权限树的功能

2、html代码权限树:3、JS代码var setting {async: {enable: true,url: /RoleToPerssion/GetPerssionTree,//异步加载时的请求地址autoParam: ["roleid"],//提交参数type: get,dataType: json},check: {enable: true, //true / false 分别表示 显示 / 不…

集合习题之列出有限集合所有子集

1、题目(《离散数学及其应用》第6版P75 20 题) 给出可以列出有限集合所有子集的步骤。 2、 解题思路 假设有集合A {a1, a2 … an},列出其所有子集。 先列出含有1个元素的所有子集:{a1},{a2} … {an}然后列出含有2个元素的所有子…

C# partial 关键字的使用

C# 2.0 引入了局部类型的概念。局部类型允许我们将一个类、结构或接口分成几个部分,分别实现在几个不同的.cs文件中。局部类型适用于以下情况:(1) 类型特别大,不宜放在一个文件中实现。(2) 一个类型中的一部分代码为自动化工具生成的代码&…

oracle中的输入 amp,Oracle之SQL学习

1.Oracle 更改会话(更改oracle中显示日期的方式)SQL> alter session set NLS_date_formatYYYY-MM-DD;2.使用绑定变量来输入记录(可以重复执行,输入记录):SQL> insert into test1(id,name)2 values(&id, &name);输入 id 的值: 5输入 name…

线段的平移和旋转

//github不会用&#xff0c;试了很久不知道怎么上传代码 #include <iostream> using namespace std;#include <stdlib.h> #include <Eigen/Dense> #include <math.h> using namespace std; using Eigen::MatrixXd; int main() { int option; struct p…

我不问+你不说

阅读原文很多事我不问你不说这就是距离我问了你不说这就是隔阂我问了你说了这就是尊重你想说我想问这就是默契我不问你说了这就是信任很多事情你看到的听到的未必是你想象的那样人生在世多给别人机会解释多些向别人解释的耐心人生会少很多遗憾不问、不说、不解释这不是酷或有个…

怎么安装redhat linux操作系统,红帽RedHat Linux5系统安装指南

介绍如何安装linux操作系统&#xff0c;以目前市场主流的操作系统为例子进行介绍。1、放入安装dvd光盘&#xff0c;然后启动服务器&#xff0c;可得如下画面&#xff1a;2、按enter键&#xff0c;进入如下画面3、选择skip&#xff0c;按enter进入&#xff0c;下面画面&#xff…

Net中的Request和Response对象的理解

Request 和 Response 对象起到了服务器与客户机之间的信息传递作用。Request 对象用于接收客户端浏览器提交的数据&#xff0c;而Response 对象的功能则是将服务器端的数据发送到客户端浏览器。一、Request对象的五个集合&#xff1a;QueryString&#xff1a;用以获取客户端附在…

研华工控机u盘启动安装linux系统,研华工控机怎么设置u盘启动

本文主要介绍研华IPC如何设置u盘启动研华IPC-610 IPC随XP版一起安装。有时安装控制软件需要在不满意时卸载。卸载未完成&#xff0c;这使得安装无法进行&#xff0c;因此您需要将系统恢复到相对纯粹的时间。通常&#xff0c;USB磁盘启动盘的安装系统首先备份初始纯XP作为备份&a…

UVA - 11732 strcmp() Anyone?左兄弟右儿子trie

input n 2<n<4000 s1 s2 ... sn 1<len(si)<1000 output 输出用strcmp()两两比较si,sj(i!j)要比较的次数&#xff0c;结果在long long范围内&#xff08;相同字符比较两次&#xff0c;不相同字符比较一次&#xff0c;包括\0&#xff09; 做法&#xff1a;由于字符集…

防止SQL注入式攻击的笔记

SQL注入式攻击是指利用设计上的漏洞攻击系统。如果动态生成SQL语句时没有对用户输入的数据进行过滤&#xff0c;便会使SQL注入式攻击得逞。例如用下面的SQL语句判断用户名和密码&#xff1a;txtsql"select * from user_info where userid"&txtuserid &"…

linux输入一个用户看是否在工作,linux下的用户管理详解

linux下的用户管理详解useradd 命令详解添加用户想要对linux下面的帐号了解的话首先必须要了解的4个配置文件[rootlocalhost /]# cat /etc/passwd首先我们需要了解的是用户帐号的配置信息/etc/passwd里面的内容每个字段都以:分割&#xff0c;下面我们详细的看看每个字段的意思r…

Java命令学习系列(零)——常见命令及Java Dump介绍

Java命令学习系列&#xff08;零&#xff09;——常见命令及Java Dump介绍 一、常用命令&#xff1a; 在JDK的bin目彔下,包含了java命令及其他实用工具。  jps:查看本机的Java中进程信息。  jstack:打印线程的栈信息,制作线程Dump。  jmap:打印内存映射,制作堆Dump。  …

优秀程序员的十个习惯

在这个世界上&#xff0c;有数百万的人热衷于软件开发&#xff0c;他们有很多名字&#xff0c;如&#xff1a;软件工程师&#xff08;Software Engineer&#xff09;&#xff0c;程序员&#xff08;Programmer&#xff09;&#xff0c;编码人&#xff08;Coder&#xff09;&…

linux下jmap 内存命令,Linux下jmap命令查看内存使用

Linux下jmap命令查看内存使用jmap -heap 1234(1234为进程号)jmap是JDK自带的一个工具&#xff0c;非常小巧方便&#xff0c;其支持参数如下&#xff1a;-heap打印heap空间的概要&#xff0c;这里可以粗略的检验heap空间的使用情况。例&#xff1a;jmap -heap 12345输出&#xf…