C#代码规范 .NET程序员需要提升的修养

WPF依赖属性深度解析:从内存机制到优先级排障 依赖属性是WPF框架的核心运行时机制,本质是一种面向UI场景的稀疏存储与动态值解析系统。它通过EffectiveValueEntry数组实现内存高效复用,依托CLR底层和PropertyMetadata元数据支持变更通知、继承、动画与多源优先级计算。其技术价值在于平衡性能(避免字段冗余)、灵活性(支持Style/Trigger/Binding协同)与可扩展性(附加属性、只读属性)。典型应用场景包括自定义水印控件、状态驱动UI、布局面板指令分发等。理解其注册流程、优先级规则与ClearValue行为,是解决W 阅读详情

1. 引言

本文是一套面向C# programmer 和C# developer 进行开发所应遵循的开发规范。

按照此规范来开发C#程序可带来以下益处:

· 代码的编写保持一致性,

·         提高代码的可读性和可维护性,

·         在团队开发一个项目的情况下,程序员之间可代码共享

·         易于代码的回顾,

本规范是初版,只适用于一般情况的通用规范,并不能覆盖所有的情况。

2. 文件组织

2.1 C# 源文件

类名或文件名要简短,不要超过2000LOC,将代码分割开,使结构清晰。将每个类放在一个单独的文件中,使用类名来命名文件名(当然扩展名是.cs)。这种约定会使大家工作更简单。

2.2 目录设计

为每一个命名空间创建一个目录。(用MyProject/TestSuite/TestTier作为MyProject.TestSuite.TestTier的路径,而不用带点的命名空间名做路径)这样可以更容易地将命名空间映射到目录层次划分。

3. 缩进

3.1 换行

当一个表达式超过一行时,根据这些通用原则进行处理:

·         在逗号后换行。

·         在操作符后换行。

·         在高层换行而不要在低层处换行。

·         折行后对齐上一行语句同一层的表达式起始位置。

方法调用换行示例:

  1. longMethodCall(expr1, expr2,  
  2.      expr3, expr4, expr5); 

算术表达式换行示例:

推荐:

  1. var = a * b / (c - g + f) +  
  2.       4 * z; 

不好的格式——应避免:

  1. var = a * b / (c - g +  
  2.       f) + 4 * z; 

推荐使用第一种方法,因为是在括号表达式之外折行(高层次折行原则)。注意要用制表符到缩进的位置,然后用用空格到折行的位置。在我们的例子中是:

  1. > var = a * b / (c - g + f) +  
  2. > ......4 * z; 

'>'表示是制表符,'.'表示是空格符。(制表符后是空白是用制表符缩进)。一个好的编码习惯就是在所用的编辑器中显示制表符和空格符。

3.2 空白

利用空格进行缩进从未有过统一的标准。一些人喜欢用两个空格,一些人喜欢用四个空格而还有一些人喜欢用八个空格,甚至有的人喜欢用更多的空格。好的做法是用制表符。制表符有一些优点:

·         每个人都可以设置他们自己喜欢的缩进层级。

·         它仅仅是1个字符而不是2,4,8等等,因此它将减少输入(甚至因为自动缩进,有时你不得不手工设置缩进或取消设置,等等诸如此类的操作)。

·         如果你想增加或减少缩进,可以标记一块,使用Tab增加缩进层级而用Shift-Tab减少缩进层级。这几乎对于任何文本编辑器都是适用的。

这里,我们定义制表符为标准缩进符。

不要用空格缩进—用制表符!

4. 注释

4.1 块注释

块注释通常应该是被避免的。推荐使用///注释作为C#的标准声明。如果希望用块注释时你应该用以下风格:

  1. /* Line 1  
  2. * Line 2  
  3. * Line 3  
  4. */ 

因为样可以为读者将注释块与代码块区分开。虽然并不提倡使用C风格的单行注释,但你仍然可以使用。一旦用这种方式,那么在注释行后应有断行,因为很难看清在同一行中前面有注释的代码:

  1. /* blah blah blah */ 

块注释在极少情况下是有用的。通常块注释用于注释掉大的代码段。

4.2 单行注释

你应该用//注释风格“注释掉”代码(快捷键,Alt+/)。它也可以被用于代码的注释部分。

单行注释被用于代码说明时必须缩进到相应的编进层级。注释掉的代码应该放在第一行被注释掉以使注释掉的代码更容易看清。

一条经验,注释的长度不应该超过被解释代码的长度太长,因为这表示代码过于复杂,有潜在的bug。

4.3 文件注释

在.net 框架,Microsoft 已经介绍了一个基于XML 注释的文件。这些文件是包括XML 标签的正规的单行的C#注释。他们遵循单行注释的模式:

  1. /// <summary>  
  2. /// This class...  
  3. /// </summary> 

多行XML 注释遵循这种模式:

  1. /// <exception cref=”BogusException”>  
  2. /// This exception gets thrown as soon as a  
  3. /// Bogus flag gets set.  
  4. /// </exception> 

为了被认作是XML注释行,所有的行都必须用三个反斜线开始。标签有以下两类:

·         文件说明项

·         格式/参考

第一类包括像<summary>, <param> or <exception>的标签。描述一个程序的API元素的这些文档说明项必须写清楚以方便其他程序员。如上面的多行注释示例所示,这些标签通常带有名称或cref属性。编译器会检查这些属性,所以它们必须是有效、正确的。第二类用诸如<code>, <list> or <para>标签,用于控制备注说明的布局。

文件可以用‘文件’菜单中的‘创建’菜单产生。文件以HTML格式产生。

5. 声明

5.1 每行的声明数

推荐每行只有一个声明,因为它可以方便注释。

  1. int level; // indentation level  
  2. int size; // size of table 

当声明变量时,不要把多个变量或不同类型的变量放在同一行,例如:

  1. int a, b; //What is 'a'? What does 'b' stand for? 

上面的例子也显示了变量名不明显的缺陷。当命名变量时要清晰。

5.2 初始化

局部变量一旦被声明就要初始化。例如:

  1. string name = myObject.Name; 

或

  1. int val = time.Hours; 

注意:如果你初始化一个dialog,设计使用using语句:

  1. using (OpenFileDialog openFileDialog = new OpenFileDialog()) {  
  2. ...  
  3. } 

5.3 类和接口声明

当编写C#类和接口时,应遵循以下格式化规则:

·         在方法名和圆括号“(”开始它的参数列表之间不要使用空格。

·         在声明语句的下一行以大括号"{"标志开始。

·         以"}"结束,通过它自身的缩进与相应的开始标志匹配。

例如:

  1. Class MySample : MyClass, IMyInterface  
  2. {  
  3.         int myInt;  
  4.         public MySample(int myInt)  
  5.         {  
  6.         this.myInt = myInt ;  
  7.         }  
  8.         void Inc()  
  9.        {  
  10.                 ++myInt;  
  11.         }  
  12.         void EmptyMethod()  
  13.         {  
  14.         }  
  15. } 

对于一个大括号的位置参考10.1部分。

6. 语句

6.1 简单语句

每行都应该只包含一条语句。

6.2 返回语句

一个返回语句不要用最外围圆括号。不用:

return (n * (n + 1) / 2);

用: return n * (n + 1) / 2;

6.3 If, if-else, if else-if else 语句

if, if-else and if else-if else 语句看起来应该像这样:

  1. if (condition) {  
  2. DoSomething();  
  3. ...  
  4. }  
  5. if (condition) {  
  6. DoSomething();  
  7. ...  
  8. } else {  
  9. DoSomethingOther();  
  10. ...  
  11. }  
  12. if (condition) {  
  13. DoSomething();  
  14. ...  
  15. } else if (condition) {  
  16. DoSomethingOther();  
  17. ...  
  18. } else {  
  19. DoSomethingOtherAgain();  
  20. ...  
  21. } 

6.4 for / foreach 语句

一个for语句应该如下形式:

  1. for (int i = 0; i < 5; ++i) {  
  2. ...  
  3. } 

或者放置一行(考虑用一个while语句代替)

 

  1. for (initialization; condition; update) ; 

foreach语句应该像下面所示 :

  1. foreach (int i in IntList) {  
  2. ...  
  3. } 

注意:在一个循环中,即使只有一个语句通常也用括弧括起来。

6.5 While/do-while 语句

一个while语句应该写成如下形式:

  1. while (condition) {  
  2. ...  
  3. } 

一个空while语句应该是以下格式:

while (condition) ;

一个do-while语句应该是如下格式:

  1. do 
  2. {  
  3. ...  
  4. } while (condition); 

6.6 Switch 语句

一个switch语句应该如下格式:

  1. switch (condition) {  
  2. case A:  
  3. ...  
  4. break;  
  5. case B:  
  6. ...  
  7. break;  
  8. default:  
  9. ...  
  10. break;  
  11. } 

6.7 Try-catch 语句

一个try-catch statement语句应该遵循以下格式:

  1. try {  
  2. ...  
  3. } catch (Exception) {}  
  4. or  
  5. try {  
  6. ...  
  7. } catch (Exception e) {  
  8. ...  
  9. }  
  10. or  
  11. try {  
  12. ...  
  13. } catch (Exception e) {  
  14. ...  
  15. } finally {  
  16. ...  
  17. } 

7. 空白

7.1 空行

空行提高可读性。它们分开那些逻辑上自身相关联的代码块。两行空格行应该用于以下之间:

·         一个源文件的逻辑段。

·         类和接口定义(每个文件只定义一个类或接口以避免这种情况)。

一个空格行应该总是被用于以下之间:

·         方法

·         属性

·         一个方法中的局部变量和它的第一条语句

·         一个方法中的逻辑段为了提高可读性。注意空白行必须被缩进因为它们包括一条语句这使得插入这些行更容易。

7.2 内部空格

在一个逗号或一个分号之后应该由一个空格,例如:

  1. TestMethod(a, b, c); 不要用: TestMethod(a,b,c) 

或

  1. TestMethod( a, b, c ); 

单个空格包围操作符(除了像加的一元操作符和逻辑非),例:

  1. a = b; // don't use a=b;  
  2. for (int i = 0; i < 10; ++i) // don't use for (int i=0; i<10; ++i)  
  3. // or  
  4. // for(int i=0;i<10;++i) 

7.3 表格格式化

行的一个逻辑块应该作为一个表格被格式化:

  1. string name = "Mr. Ed";  
  2. int myValue = 5;  
  3. Test aTest = Test.TestYou; 

对于表格的格式化用空格而不用制表符因为在某些制表符缩进设置会使表格格式化看起来是很奇怪。

8. 命名习惯

8.1 大写格式

8.1.1 Pascal Casing

习惯大写每个单词的第一个字母(就像在TestCounter)。

8.1.2 Camel Casing

习惯除了第一个单词外大写每个单词的第一个字母例如testCounter。

8.1.3 全大写情况

对于只有一两个字符缩写组成的标识符才用全大写的情况。有三个或更多个字符组成的标识符应该用Pascal情况代替。例如:

  1. public class Math  
  2. {  
  3. public const PI = ...  
  4. public const E = ...  
  5. public const feigenBaumNumber = ...  
  6. } 

8.2. 命名指导方针

通常根据指导方针在名字和命名内用低线字符对Hungarian 符号来说被认为是坏习惯。

Hungarian 符号是一组应用于命名来映射变量类型的前缀和后缀。这种命名风格在早期的Windows程序中被广泛应用,但现在被取消了至少不提倡了。如果你遵循这个指南用Hungarian 符号是不允许的。

但要记住一个好的变量名描述了语义而不失类型。

对于这个规则有个例外就是GUI编码。包括像按钮(buttton)的GUI元素,所有领域和变量名都应该带有它们类型名的后缀不是缩写。例如:

  1. System.Windows.Forms.Button cancelButton;  
  2. System.Windows.Forms.TextBox nameTextBox; 

8.2.1 类命名指导方针

·         类命名必须是名词或名词短语。

·         UsePascal 情况参考8.1.1

·         不要用任何类前缀

8.2.2 接口命名指导方针Guidelines

·         用可以描述行为的名词或名词短语或形容词命名接口。(例如IComponent 或 IEnumberable)

·         用Pascal情况(参考8.1.1)

·         用I作为名字的前缀,它应该紧跟一个大写字母(接口名的第一个字母)

8.2.3 枚举命名指导方针

·         用Pascal情况命名枚举值名字和类型名字

·         枚举类型和枚举值不要前缀

·         对于枚举用单一名字

·         对于位领域用复数名字

8.2.4 只读和常量命名

·         用名词,名词短语或名词的缩写命名静态领域

·         使用Pascal 情况(参考8.1.1)

8.2.5 参数/非常量领域命名

·         一定要用描述性名字,应该能够足够表现变量的意义和它的类型。但一个好的名字应该基于参数的意义。

·         使用Camel情况(参考8.1.2)

8.2.6 变量命名

·         计数变量当用在琐碎的计数循环式更适宜叫i, j, k, l, m, n。(参考10.2例如对全局计数的更智能命名等等)—

·         使用Camel情况(参考8.1.2)

8.2.7 方法命名

·         用动词或动词短语命名方法。

·         使用Pascal(参考8.1.2)

8.2.8 属性命名

·         用名词或名词短语命名属性

·         使用Pascal 情况(参考8.1.2)

·         考虑用与其类型相同的名字命名一个属性

8.2.9 事件命名

·         用事件处理器后缀命名事件处理器

·         用sender 和 e命名两个参数

·         使用Pascal情况(参考8.1.1)

·         用EventArgs 后缀命名事件参数

·         用现在和过去时态命名有前缀和复制概念的事件名字。

·         考虑用一个动词命名事件。

8.2.10 大写总结

Type

Case

Notes

Class / Struct

Pascal Casing

 

Interface

Pascal Casing

Starts with I

Enum values

Pascal Casing

 

Enum type

Pascal Casing

 

Events

Pascal Casing

 

Exception class

Pascal Casing

End with Exception

public Fields

Pascal Casing

 

Methods

Pascal Casing

 

Namespace

Pascal Casing

 

Property

Pascal Casing

 

Protected/private Fields

Camel Casing

 

Parameters

Camel Casing

 

9. 编程习惯

9.1 可见性

不要任何公共实例或类变量,让它们为私有的。对于私有成员最好不用“private”作修饰语什么都不写。私有是默认情况,每个C#程序员都应该知道这一点。

用属性代替。你可以用公共静态(或常量)对于这个规则是以例外,带它不应该是规则。

9.2 没有“幻”数

不要用幻数,也就是在源代码中直接用常数值。替代这些后者以防变化(比方说,你的应用程序可以处理3540用户代替427你的代码在50行中通过分散25000LOC)是错误和没有收益的。声明一个带有数的常量来代替:

  1. public class MyMath  
  2. {  
  3. public const double PI = 3.14159...  
  4. } 

10. 编码举例

10.1 Brace placement example

  1. namespace ShowMeTheBracket  
  2. {  
  3. public enum Test {  
  4. TestMe,  
  5. TestYou  
  6. }  
  7. public class TestMeClass  
  8. {  
  9. Test test;  
  10. public Test Test {  
  11. get {  
  12. return test;  
  13. }  
  14. set {  
  15. test = value;  
  16. }  
  17. }  
  18. void DoSomething()  
  19. {  
  20. if (test == Test.TestMe) {  
  21. //...stuff gets done  
  22. } else {  
  23. //...other stuff gets done  
  24. }  
  25. }  
  26. }  
  27. } 

括弧应该在以下情况之后以新行开始:

·         命名空间声明(注意这在0.3版本中是新添的与0.2版本不同)

·         类/接口/结构声明

·         方法声明

10.2 变量命名举例

代替:

  1. for (int i = 1; i < num; ++i) {  
  2. meetsCriteria[i] = true;  
  3. }  
  4. for (int i = 2; i < num / 2; ++i) {  
  5. int j = i + i;  
  6. while (j <= num) {  
  7. meetsCriteria[j] = false;  
  8. j += i;  
  9. }  
  10. }  
  11. for (int i = 0; i < num; ++i) {  
  12. if (meetsCriteria[i]) {  
  13. Console.WriteLine(i + " meets criteria");  
  14. }  
  15. }  
  16. try intelligent naming :  
  17. for (int primeCandidate = 1; primeCandidate < num; ++primeCandidate)  
  18. {  
  19. isPrime[primeCandidate] = true;  
  20. }  
  21. for (int factor = 2; factor < num / 2; ++factor) {  
  22. int factorableNumber = factor + factor;  
  23. while (factorableNumber <= num) {  
  24. isPrime[factorableNumber] = false;  
  25. factorableNumber += factor;  
  26. }  
  27. }  
  28. for (int primeCandidate = 0; primeCandidate < num; ++primeCandidate)  
  29. {  
  30. if (isPrime[primeCandidate]) {  
  31. Console.WriteLine(primeCandidate + " is prime.");  
  32. }  
  33. } 

注意:索引变量通常叫i, j, k 等等。但Note: Indexer variables generally should be called i, j, k etc. But 万一像这样,使得重新考虑这个原则更有意义。一般来说,当同一个计数器或索引器被重用,给它们有意义的名字。

原文标题:C#代码规范 程序员必备的秘笈

链接:http://www.cnblogs.com/javincoder/archive/2010/08/09/1795463.html

【编码规范篇】 C#编码规范 代码规范总结,包括命名规范,代码规范 注释规范等_c 本文整理了一些C#中较为常用的一些编码规范,目的是能够让我们编写出更优美简洁的代码。多数的规范并没有强制性,只是作为一个样例模板以供参考学习使用。尤其是对于新手来说,在前期编写代码的过程中养成一个好的习惯,后面就可以完全放飞自我啦。如果文中哪里有错误或者有更好的解决方案,也希望可以指出共同进步~部分内容参考链接C# 7 草稿规范。 阅读详情

相关推荐

详解如何用爬虫工具批量采集阿里巴巴批发网商品数据

本文主要介绍如何使用后羿采集器的智能模式,免费采集阿里巴巴批发网商品的批发价格、发货时间、是否代发等信息。 采集字段: 商品标题、商品链接、图片链接、标签1、标签2、标签3、价格、30天成交数、 评价、店铺 功能点目录: 如何对采集字段进行配置 如何采集列表+详情页类型网页 采集结果预览: 下面我们来详细介绍一下如何免费采集1688批发网的商品数据,我们以“羽绒服女”为例,具体步骤如下: 步骤一...

weixin_43777427的博客 1万+

C#编码规范

例如:正确不正确。

camellia的博客 2064

树莓派5搭建ROS1开发环境:从系统安装到环境变量配置

本文详细指导如何在树莓派5上搭建ROS1开发环境。针对树莓派OS非标准安装路径导致的常见CMake报错问题,提供了从系统烧录、一键安装ROS到关键环境变量配置的完整解决方案,确保工作空间能成功编译,助力机器人项目开发。

weixin_29159127的博客 384

C# 编码规范

从业多年,不断发现有很多团队的代码写的很随意,各种风格、命名方式都有,有用c++风格的,有用java风格的。所以本人在这里介绍下微软官方的C#编码规范,规范本身内容其实不长,但是如果能过一遍,相信对以后自己的编码会有很大帮助。注:本文不是一定适用所有人和所有团队,供大家参考。默认的就是最好的。......

catshitone的专栏 4159

告别复杂模型:用UFLD算法5分钟搞定车道线检测(附Python代码)

本文介绍了UFLD(Ultra Fast Lane Detection)算法在车道线检测中的高效应用,仅需5行核心代码即可实现实时检测,特别适合边缘计算设备。通过对比传统方法,UFLD在推理速度、模型大小和硬件需求上具有显著优势,是深度学习领域轻量级解决方案的典范。

weixin_27872611的博客 286

超详细 VMware Horizon 虚拟桌面VDI安装步骤

主要的目的是模拟生产环境中的共享存储。自动桌面相当于共享电脑,大家使用同一个虚拟机,对虚拟机的修改都放在用户的配置文件中,RDS桌面池相当于共享的服务器,可以多人同时连接到服务器上。1:之前已经建立好了NFS的存储,这部分配置好后,以后的虚拟机可以安装到NFS的存储中。2: 使用Composer发布系统可以解决SID,机器名冲突的问题,更重要的可以节约磁盘空间,发布的所有系统可以访问一块磁盘。26: 域选择我们之前建立的域,用户名我输入的是管理员,可以在AD域新建用户点击查找,我这里用的是管理员。

vv12345的博客 1万+

c#程序编写规范

C#代码开发规范     文件状态: [√] 草稿 [  ] 正式 [  ] 修改 文件标识:   当前版本: 1.1 作    者: Empty 联系电话:   最后更新: 2014-04-07   版本记录

youwenyouwen的专栏 5266

STM32H743 SD卡读写避坑实录:CubeMX配置MDMA给FATFS,我的FreeRTOS项目踩了哪些雷?

本文详细解析了STM32H743在CubeMX配置中结合SDMMC、MDMA与FATFS的实战避坑指南,特别针对FreeRTOS环境下的SD卡读写问题提供了解决方案。从时钟配置到FATFS参数设置,再到DMA缓存维护和FreeRTOS集成技巧,帮助开发者高效解决数据损坏、DMA传输错误等常见问题,提升项目稳定性。

weixin_30878501的博客 493

C#代码编写规范

文章目录命名规范namespace的命名规范类的命名规范接口的命名规范方法的命名规范不同变量使用前缀区分对于private的变量,使用以下约定。注释规范布局规范 命名规范 命名规范主要涉及命名空间、类型、接口、属性、方法、变量等相关命名。它在编写代码中起到很重要的作用,不仅可以清晰的表达出程序规划的核心,还可以达到让人“望文知意”的效果。虽然不遵循命名规范程序也可以运行,但是使用命名规范可以很直观的了解代码所代表的含义。 字母大小写约定 (1) Pascal风格:将标识符的首字母和后面连接的每个单词的首字

qq_951274168的博客 2295

catia之车灯设计——灯玻加厚之后(单层灯玻、多层灯玻的设计)

加厚完A面后如果主机厂没有给其他的面我们该怎么做?

qq_19829077的博客 1304

SPI为什么不需要加上拉电阻

大家好,我是记得诚。I2C因为其开漏的结构,无法输出高电平,所以外部加上拉电阻。我们在使用SPI的时候,发现是不需要加上拉电阻的。主要因为SPI多为推挽的结构,推挽电路,高低电平都可以输出,所以外部不需要加上拉电阻。推挽电路可以用2个三极管或者2个MOS管搭建而成。

记得诚 2619

C#代码规范 .NET程序员需要提升的修养1

1. 引言 本文是一套面向C# programmer 和C# developer 进行开发所应遵循的开发规范。 按照此规范来开发C#程序可带来以下益处: ·代码的编写保持一致性, · 提高代码的可读性和可维护性, · 在团队开发一个项目的情况下,程序员之间可代码共享 · 易于代码的回顾, 本规范是初版,只适用于一般情况的通用规范,并不能覆盖所有的...

u014712365的博客 174

用一台笔记本跑起 SAP HANA:从 express edition 的定位,到本地硬件门槛与安装实操

SAP HANA是面向个人开发者、初创团队与教学科研场景的精简发行版,保留了in-memory列存引擎、SQLScriptAFLGraphSpatial等核心能力,可免费用于开发与一定规模的生产用途(上限为 32 GB RAM)。它最大的特征,是能在资源受限的laptop或上快速落地,让你在本地完成从建模、开发到测试的完整闭环。SAP在交付形态上,提供了多种安装包:预配置的VM OVA、面向Linux的二进制安装包,以及历史上出现过的容器化方案;你可以按现有设备与熟悉的运维方式择优选择。官方文档把VM。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 533

程序员的修炼之道

说 明:本文来自互联网,抱歉不知道作者是谁,只知道是某个职业学校的计算机老师,如果侵犯了你的全力或者隐私,请通知我,我立刻删除,写于此处完全在于对本文的好感,拿到博客上来分享,没有任何商业通途,特此说明。 前 言本书内容与广为流传的经典书籍: 《程序员修炼之道-从小工到大家》 无任何关系,这里仅仅是喜欢此书且书中主要内容与一个爱好者如何成为一个程序员之修炼道路相关而已。此书内容是由一系列独立...

weixin_33720078的博客 134

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

C#学习文章列表

C#基本语法知识 http://www.cnblogs.com/feisky/archive/2009/10/29/1591970.html C# 集合,泛型集合 http://www.cnblogs.com/feisky/archive/2009/10/29/1591956.html C#.Net ArrayList的使用(1) http://developer.51c

Huangrg的专栏 704

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

C#代码规范

C#命名规范 1.Types and namespaces(类型与命名空间)->大驼峰 2.Interface(接口)->“I”+大驼峰 3.Type parameters(泛型参数)->“T”+大驼峰 4.Methods(方法)->大驼峰 5.Proterties(属性)->大驼峰 6.Events(事件)->大驼峰 7.Local variables(局部变量)->小驼峰 8.Local constants(局部常量)->小驼峰 9.Parameters(

残獄の世界に救いを 520

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

上一篇: PL/SQL Developer 8.0.2.1505 简体中文汉化版下载,带注册机-永久注册。
下一篇: 解决IE6、IE7、IE8、Firefox兼容的几种方案
escode
博客等级 码龄22年 33粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值