| [C#基语法]之C#注释 系列文章导航
 
 [C#基语法]苏飞传奇版   http://www.sufeinet.com/thread-3091-1-1.html
 
 
 我对注释的理解
 
 我对注释的重视是从一开始学习语言就开始做的,没有注释的代码是我无论如何都无法接受的,没有注解的代码我只能说是一种不负责的做法
 
 我们的代码想要通用,想要被更多的人优化熟悉并使用,通过注释了解是最方便最快速的方式
 
 做为一个程序员,无论如何都不应该不写注释。
 不光要写而且要写的突出重点,一看就明白。而不是长篇大论。
 下面我给大家一说一下,我平时写代码的时候习惯用到的注释方式
 
 类文件的注释
 
 类一般与一个文件对应,为了不破坏它的完整性,我通常是在最上方写注释,当然这是对于一个文件一个类的情况下的写法,看代码
 [C#] 纯文本查看 复制代码 /// <summary>
/// 类说明:HttpHelper类,用来实现Http访问,Post或者Get方式的,直接访问,带Cookie的,带证书的等方式,可以设置代理
/// 重要提示:请不要自行修改本类,如果因为你自己修改后将无法升级到新版本。如果确实有什么问题请到官方网站提建议,
/// 我们一定会及时修改
/// 编码日期:2011-09-20
/// 编 码 人:苏飞
/// 联系方式:361983679  
/// 官方网址:[url=http://www.sufeinet.com/thread-3-1-1.html]http://www.sufeinet.com/thread-3-1-1.html[/url]
/// 修改日期:2018-11-06
/// 版 本 号:1.9.9
/// </summary>
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.IO;
using System.Text.RegularExpressions;
using System.IO.Compression;
using System.Security.Cryptography.X509Certificates;
using System.Net.Security;
using System.Linq;
using System.Net.Cache;
namespace SufeiUtil
{
    /// <summary>
    /// Http连接操作帮助类
    /// </summary>
    public class HttpHelper
    {代码不全,主要看注释部分,我也就不贴完整的代码了
 
 我一般会写以下几个要点
 
 类说明,简明的说明一下这个类的作用和方向重要提示,这里主要是写上这个类在使用过程中需要用户注意什么,也就是会影响实际输出,或者会对方法造成不良结果的地方,也可以说是Bug编码日期,也就是一个类的创建时间了。编码人,告诉用户 这类是自己写的联系方式,方便使用者与你取得联系,毕竟用到的人不一定都认识你更新地址,这个很重要,用别人的类大多是不想自己写,但随着时间的推移,总会有Bug或者不能满足的地方,这个时候用户可以根据这个地址找到最新的版本修改时间,写清最后一次更新的时间版本号,这个其实可有可无,如果一个产品的话这是必须的。
 
 有了以上8点,基本上就可以满足一下类注释的基本需求了。
 
 变量的注释
 
 这个就简单了,一个单行的注释就够了,当然有人可能会说一行要是写不完呢,那就写两行,但是最好一行写完,一个变量而已,说明用途就够了
 
 
 [C#] 纯文本查看 复制代码         //默认的编码
        private Encoding encoding = Encoding.Default;
        //Post数据编码
        private Encoding postencoding = Encoding.Default;
        //HttpWebRequest对象用来发起请求
        private HttpWebRequest request = null;
        //获取影响流的数据对象
        private HttpWebResponse response = null;
        //设置本地的出口ip和端口
        private IPEndPoint _IPEndPoint = null;
 方法的注释
 
 这个先看个代码
 
 [C#] 纯文本查看 复制代码 
        /// <summary>
        /// 根据相传入的数据,得到相应页面数据
        /// </summary>
        /// <param name="item">参数类对象</param>
        public HttpResult GetHtml(HttpItem item)
        {这里面有几点需要注意
 1. 必须使用Xml格式的注释,如果我是一个团队管理者,我一定这样要求团队成员,不同意的就离职,不解释。
 2. 必须对每一个参数进行说明
 
 再来看下面这个
 
 [C#] 纯文本查看 复制代码    /// <summary>
        /// 获取数据的并解析的方法
        /// </summary>
        /// <param name="item"></param>
        /// <param name="result"></param>
        private void GetData(HttpItem item, HttpResult result)
        {这是一个反面案例,这种做法是不允许的,这大部分是为了不让VS报警告的做法,正确的应该是对item,sesult参数进行说明。
 
 大家有没有看出来上面两个例子都缺了一个方法另一个重核心的都
 ,????
 当然,也必须是返回值
 比如上面第一个方法应该是这样写
 
 [C#] 纯文本查看 复制代码     /// <summary>
        /// 根据相传入的数据,得到相应页面数据
        /// </summary>
        /// <param name="item">参数类对象</param>
        /// <returns>返回HttpResult类型</returns>
        public HttpResult GetHtml(HttpItem item)
 有时候方法上需要写个例子,这个说实话我个人不太建议写,太新手,方法的引用基本没有人不会,除非是没学过语言,一个连方法都不会引用的人,你跟他说那么多也是对牛弹琴,当然这绝不是鄙视新手,而是大家要清楚你的类使用对象,面向的是那种类型的用户,如果你是老师,你不光要写,还是手把手的教,但显然我们都不是老师,那些应该是在学习就学会的东西
 如果这个都要写的话,那不如把每一个字母的音标给加上得了
  太基础的可以不写。
 因为随时可以百度到。
 
 实体类的注释
 
 
 [C#] 纯文本查看 复制代码     /// <summary>
    /// Cookie对象
    /// </summary>
    public class CookieItem
    {
        /// <summary>
        /// 键
        /// </summary>
        public string Key { get; set; }
        /// <summary>
        /// 值
        /// </summary>
        public string Value { get; set; }
    }比如上面一个实体类的写法,个人感觉已经够了。
 类内部的方法规划region用法
 
 这个分类的方法有很多,我一般是根据功能,或者模块来的。
 看截图
 
   还有一种方法也是我所喜欢的
 
   这个就明确的告诉了你,里面都是干嘛的方法。
 我们直接看一下第二个的代码如下
 
 [C#] 纯文本查看 复制代码         #region 使用 给定密钥字符串 加密/解密string
        /// <summary>
        /// 使用给定密钥字符串加密string
        /// </summary>
        /// <param name="original">原始文字</param>
        /// <param name="key">密钥</param>
        /// <param name="encoding">字符编码方案</param>
        /// <returns>密文</returns>
        public static string Encrypt(string original, string key)
        {
            byte[] buff = System.Text.Encoding.Default.GetBytes(original);
            byte[] kb = System.Text.Encoding.Default.GetBytes(key);
            return Convert.ToBase64String(Encrypt(buff, kb));
        }
        /// <summary>
        /// 使用给定密钥字符串解密string
        /// </summary>
        /// <param name="original">密文</param>
        /// <param name="key">密钥</param>
        /// <returns>明文</returns>
        public static string Decrypt(string original, string key)
        {
            return Decrypt(original, key, System.Text.Encoding.Default);
        }
        /// <summary>
        /// 使用给定密钥字符串解密string,返回指定编码方式明文
        /// </summary>
        /// <param name="encrypted">密文</param>
        /// <param name="key">密钥</param>
        /// <param name="encoding">字符编码方案</param>
        /// <returns>明文</returns>
        public static string Decrypt(string encrypted, string key, Encoding encoding)
        {
            byte[] buff = Convert.FromBase64String(encrypted);
            byte[] kb = System.Text.Encoding.Default.GetBytes(key);
            return encoding.GetString(Decrypt(buff, kb));
        }
        #endregion
 总结
 
 我感觉应该是注意以下几点就行了
 1. 能一句话说明白的不要写那么长
 2. 能说明一下的不要偷懒
 3.对于你的逻辑复杂的必须要加上注释
 4.类,变量,常量,方法,属性,这些是必须要加的,没有理由。
 
 不喜欢写注释的程序员不能算是一个合格的程序员。
 也许 你会很成功,争很多钱,但绝对不是一个好程序员。
 
 我想当一个好程序员,所以我一直在努力坚持写注释
  
 
 |