C#编码规范1--良好的编程习惯

 

·  避免使用大文件。如果一个文件里的代码超过300400行,必须考虑将代码分开到不同类中。

·  避免写太长的方法。一个典型的方法代码在125行之间。如果一个方法发代码超过25行,应该考虑将其分解为不同的方法。

·  方法名需能看出它作什么。别使用会引起误解的名字。如果名字一目了然,就无需用文档来解释方法的功能了。

好:

 void SavePhoneNumber ( string phoneNumber )

 {

  // Save the phone number.

 }


不好:

 // This method will save the phone number.

 void SaveData ( string phoneNumber )

 {

  // Save the phone number.

 }

·  一个方法只完成一个任务。不要把多个任务组合到一个方法中,即使那些任务非常小。

好:

 // Save the address.

 SaveAddress (  address );

 // Send an email to the supervisor to inform that the address is updated.

 SendEmail ( address, email ); 

 void SaveAddress ( string address )

 {

  // Save the address.

  // ...

 }

 void SendEmail ( string address, string email )

 {

  // Send an email to inform the supervisor that the address is changed.

  // ...

 }


不好:

 // Save address and send an email to the supervisor to inform that the address is updated.

 SaveAddress ( address, email );

 void SaveAddress ( string address, string email )

 {

  // Job 1.

  // Save the address.

  // ...

  // Job 2.

  // Send an email to inform the supervisor that the address is changed.

  // ...

 }

·  使用C# VB.NET的特有类型,而不是System命名空间中定义的别名类型。

好:

 int age;

 string name;

 object contactInfo;


不好:

 Int16 age;

 String name;

 Object contactInfo;

·  别在程序中使用固定数值,用常量代替。

·  别用字符串常数。用资源文件。

·  避免使用很多成员变量。声明局部变量,并传递给方法。不要在方法间共享成员变量。如果在几个方法间共享一个成员变量,那就很难知道是哪个方法在什么时候修改了它的值。

·  必要时使用enum 。别用数字或字符串来指示离散值。
好:

 enum MailType

 {

  Html,

  PlainText,

  Attachment

 }

 void SendMail (string message, MailType mailType)

 {

  switch ( mailType )

  {

   case MailType.Html:

    // Do something

    break;

   case MailType.PlainText:

    // Do something

    break;

   case MailType.Attachment:

    // Do something

    break;

   default:

    // Do something

    break;

  }

 }

           



不好:

 void SendMail (string message, string mailType)

 {

  switch ( mailType )

  {

   case "Html":

    // Do something

    break;

   case "PlainText":

    // Do something

    break;

   case "Attachment":

    // Do something

    break;

   default:

    // Do something

    break;

  }

 }

·  别把成员变量声明为 public protected。都声明为 private 而使用 public/protected Properties.

·  不在代码中使用具体的路径和驱动器名。使用相对路径,并使路径可编程。

·  永远别设想你的代码是在“C:”盘运行。你不会知道,一些用户在网络或“Z:”盘运行程序。

·  应用程序启动时作些自检并确保所需文件和附件在指定的位置。必要时检查数据库连接。出现任何问题给用户一个友好的提示。

·  如果需要的配置文件找不到,应用程序需能自己创建使用默认值的一份。

·  如果在配置文件中发现错误值,应用程序要抛出错误,给出提示消息告诉用户正确值。

·  错误消息需能帮助用户解决问题。永远别用象"应用程序出错", "发现一个错误" 等错误消息。而应给出象 "更新数据库失败。请确保登陆id和密码正确。" 的具体消息。  

·  显示错误消息时,除了说哪里错了,还应提示用户如何解决问题。不要用象 "更新数据库失败。"这样的,要提示用户怎么做:"更新数据库失败。请确保登陆id和密码正确。"

·  显示给用户的消息要简短而友好。但要把所有可能的信息都记录下来,以助诊断问题。

注释

·  别每行代码,每个声明的变量都做注释。

·  需要的地方注释。可读性强的代码需要很少的注释。如果所有的变量和方法的命名都很有意义,会使代码可读性很强并无需太多注释。

·  行数不多的注释会使代码看起来优雅。但如果代码不清晰,可读性差,那就糟糕。

·  如果应为某种原因使用了复杂艰涩的原理,为程序配备良好的文档和重分的注释。

·  对一个数值变量采用不是0,-1等的数值初始化,给出选择该值的理由。

·  简言之,要写清晰,可读的代码以致无须什么注释就能理解。

·  对注释做拼写检查,保证语法和标点符号的正确使用。

 

 

数据类型
数据类型简写
标准命名举例
Array
arr
arrShoppingList
Boolean                         bln blnIsPostBack
Byte                           byt bytPixelValue
Char                            chr chrDelimiter
DateTime                       dtm dtmStartDate
Decimal dec decAverageHeight
Double                           dbl dblSizeofUniverse
Integer         int intRowCounter
Long                             
lng
lngBillGatesIncome
Object           obj                  objReturnValue
Short shr shrAverage
Single sng sngMaximum
String
str
strFirstName


控件类型缩写示例
Animated buttonanianiMailBox
Buttonbtn 
Check boxchkchkReadOnly
ColorDialogclrdlg 
Combobox,drop-down list boxcbocboEnglish
Communications comcomFax
ContextMenuctxmnu 
Control(used within procedures when the specific type is unknown)ctrctrCurrent
CrystalReportViewercrvw 
DatadatdatBiblio
Data griddgddgdTitles
Data listdbldblPublisher
Data repeaterdrpdrpLocation
Data-bound combo boxdbcbodbcboLanguage
Data-bound griddbgrddbgrdQueryResult
Data-bound list boxdblstdblstJobType
Datetime pickerdtpdtpPublished
Directory list boxdirdirSource
DomainUpDowndupd 
Drive list boxdrvdrvTarget
ErrorProvidererr 
File list boxfilfilSource
Flat scroll barfsbfsbMove
FontDialogfntdlg 
FormfrmfrmEntry
FramefrafraLanguage
GaugegaugauStatus
GraphgragraRevenue
GridgrdgrdPrices
GroupBoxgrp 
HelpProviderhlp 
Hierarchical flexgridflexflexOrders
HScroll barhsbhsbVolume
ImageimgimgIcon
Image comboimgcboimgcboProduct
ImageListilsilsAllIcons
LabellbllblHelpMessage
LinelinlinVertical
LinkLabellnk 
List boxlstlstPolicyCodes
ListViewlvwlvwHeadings
MAPI messagempmmpmSentMessage
MAPI sessionmpsmpsSession
MCImcimciVideo
MenumnumnuFileOpen
Month viewmvwmvwPeriod
MonthCalendarmcl 
MS ChartchchSalesbyRegion
MS Flex gridmsgmsgClients
MS Tab mstmstFirst
NotifyIconnti 
NumericUpDownnupd 
OLE containeroleoleWorksheet
OpenFileDialogofdlg 
PageSetUpDialogpsdlg 
Picture boxpicpicVGA
Picture clipclpclpToolbar
PrintDocumentprndoc 
PrintPreviewControlppctl 
PrintPreviewDialogppdlg 
ProgressBarprgprgLoadFile
RadioButtonrbtn 
Remote DatardrdTitles
RichTextBoxrtfrtfReport
SaveFileDialogsfdlg 
ShapeshpshpCircle
SlidersldsldScale
SpinspnspnPages
Splitterspt 
StatusBarstastaDateTime
SysInfosyssysMonitor
TabContrltab 
TabStriptabtabOptions
Text boxtxttxtLastName
TimertmrtmrAlarm
ToolbartlbtlbActions
TrackBartrb 
TreeViewtretreOrganization
UpDownupdupdDirection
VScroll barvsbvsbRate

ADO.NET 命名规范
数据类型数据类型简写标准命名举例
ConnectionconconNorthwind
CommandcmdcmdReturnProducts
ParameterparmparmProductID
DataAdapterdaddadProducts
DataReaderdtrdtrProducts
DataSetdstdstNorthWind
DataTabledtbldtblProduct
DataRowdrowdrowRow98
DataColumndcoldcolProductID
DataRelationdreldrelMasterDetail
DataViewdvwdvwFilteredProducts

2 WinForm Control 命名规范

数据类型数据类型简写标准命名举例
LabellbllblMessage
LinkLabelllblllblToday
ButtonbtnbtnSave
TextBoxtxttxtName
MainMenummnummnuFile
CheckBoxchkchkStock
RadioButtonrbtnrbtnSelected
GroupBoxgbxgbxMain
PictureBoxpicpicImage
PanelpnlpnlBody
DataGriddgrddgrdView
ListBoxlstlstProducts
CheckedListBoxclstclstChecked
ComboBoxcbocboMenu
ListViewlvwlvwBrowser
TreeViewtvwtvwType
TabControltctltctlSelected
DateTimePickerdtpdtpStartDate
HscrollBarhsbhsbImage
VscrollBarvsbvsbImage
TimertmrtmrCount
ImageListilstilstImage
ToolBartlbtlbManage
StatusBarstbstbFootPrint
OpenFileDialogodlgodlgFile
SaveFileDialogsdlgsdlgSave
FoldBrowserDialogfbdlgfgdlgBrowser
FontDialogfdlgfdlgFoot
ColorDialogcdlgcdlgColor
PrintDialogpdlgpdlgPrint

3 WebControl 命名规范

数据类型数据类型简写标准命名举例
AdRotatoradrtExample
ButtonbtnbtnSubmit
CalendarcalcalMettingDates
CheckBoxchkchkBlue
CheckBoxListchklchklFavColors
CompareValidatorvalcvalcValidAge
CustomValidatorvalxvalxDBCheck
DataGriddgrddgrdTitles
DataListdlstdlstTitles
DropDownListdropdropCountries
HyperLinklnklnkDetails
ImageimgimgAuntBetty
ImageButtonibtnibtnSubmit
LabellbllblResults
LinkButtonlbtnlbtnSubmit
ListBoxlstlstCountries
PanelpnlpnlForm2
PlaceHolderplhplhFormContents
RadioButtonradradFemale
RadioButtonListradlradlGender
RangeValidatorvalgvalgAge
RegularExpressionvalevaleEmail_Validator
RepeaterrptrptQueryResults
RequiredFieldValidatorvalrvalrFirstName
TabletbltblCountryCodes
TableCelltblctblcGermany
TableRowtblrtblrCountry
TextBoxtxttxtFirstName
ValidationSummaryvalsvalsFormErrors
XMLxmlcxmlcTransformResults

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值