Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在我们正在实施的每种方法中使用#region好吗_C#_Asp.net_Coding Style - Fatal编程技术网

C# 在我们正在实施的每种方法中使用#region好吗

C# 在我们正在实施的每种方法中使用#region好吗,c#,asp.net,coding-style,C#,Asp.net,Coding Style,最近,我的项目经理要求为我们迄今为止所做的所有工作撰写评论、总结和区域。甚至他也要求编写变量声明。比如说,如果我们申报的金额是双倍,那么他让我们这样写 /// <summary> /// RegularPay declared as double /// </summary> private double m_dRegularPay; // ///正式公布双薪 /// 私人双m_dRegularPay; 即使是准备好了 /// <

最近,我的项目经理要求为我们迄今为止所做的所有工作撰写评论、总结和区域。甚至他也要求编写变量声明。比如说,如果我们申报的金额是双倍,那么他让我们这样写

  /// <summary>
    /// RegularPay declared as double
    /// </summary>
    private double m_dRegularPay;
//
///正式公布双薪
/// 
私人双m_dRegularPay;
即使是准备好了

  /// <summary>
    /// Get and Set FirstName
    /// </summary>
    public string FirstName
    {
        get
        {
            return m_sFirstName;
        }
        set
        {
            m_sFirstName = value;
        }
    }
//
///获取并设置名字
/// 
公共字符串名
{
得到
{
返回m_sFirstName;
}
设置
{
m_sFirstName=值;
}
}
在实现某些代码时使用和区域

   #region EmpHourly
    /// <summary>
    /// Get Employe Hourly Amount
    /// </summary>
    /// <param name="EmpAmount"></param>
    /// <param name="EmpRegularHours"></param>
    /// <param name="EmpHourlyRate"></param>
    /// <param name="EmpBonusPay"></param>
    /// <param name="EmpOtherHours"></param>
    /// <param name="EmpOverTimeHours"></param>
    /// <returns></returns>
    public bool GetEmpHourlyAmount(out double EmpAmount, out double EmpRegularHours, out double EmpHourlyRate, out double EmpBonusPay, out int EmpOtherHours, out int EmpOverTimeHours)
    {
     }
#地区
/// 
///获得雇员小时工资
/// 
/// 
/// 
/// 
/// 
/// 
/// 
/// 
public bool GetEmpHourlyAmount(out double EmpAmount,out double EmpRegularHours,out double EmpHourlyRate,out double EmpBonuPay,out int EmpOtherHours,out int EmpOverTimeHours)
{
}

我想知道的是,这是一种更好的编码标准

注释类字段和属性是一种很好的做法,但这里的区域似乎毫无意义。我还要补充一点,过度使用out变量不是很好的C#风格。您最好返回一个对象。

我认为使用区域的更好方法是对函数和函数部分进行逻辑分组(如果函数较大)。对于函数描述,我认为总结就足够了。

IMO区域是一种代码气味。它们影响
可读性
以及
可维护性
。当您有一个大的代码文件并且需要划分代码时,您需要区域。然而,您应该真正编写小型类,每个类都完成自己的任务

在编辑带有区域的代码文件时,决定将新方法放在哪个区域是一件痛苦的事情。我经常看到许多区域包含应该属于另一个区域的代码

注释属性是可以的,但是您还应该写下属性的目的\用法,以使事情更清楚。理想情况下,从名称本身就可以看出目的

我认为写“字段声明为double”这样的注释是没有意义的。IDE intellisence已经完成了使注释冗余的工作


也可以考虑使用删除样板代码。 地区是可怕的。他们只是隐藏了你想看的代码。对我来说,这就像试着读一本书,但有人在每一段都加上封面。这毫无意义

我还认为学校的评论请求值得推回。它增加了零值,创建了繁忙的工作,并掩盖了真正的注释(代码本身)


这只说了一次。

这个评论惯例似乎过于热情……但前后矛盾

用注释“RegularPay声明为double”注释行
double RegularPay
,这是一项愚蠢而繁忙的工作。这是显而易见的,指出这一点是多余的,也是浪费时间

在您所在的地区,GetEmpHourlyAmount的摘要可能很重要,但它并不是这样处理的。方法的名称与注释一样有用


一般来说,如果你评论,评论应该告诉你一些名字没有明显告诉你的事情。这条评论应该会显示更多有用的信息。

对我来说似乎是太过分了

为了记录自我描述的方法/变量而记录这些方法/变量是如此浪费金钱。它们变得陈旧、过时,使代码更难阅读

此外,使用区域是代码气味的标志。如果你有一个如此大的类,你必须把它分成几个区域,你需要重新考虑设计

文档和区域不会修复错误代码,并使其更难维护。好的代码是自我描述的,不需要像“注释所有内容”这样的笼统规则


在适当的情况下进行注释,并使用区域作为警告标志,表明您需要修复文件的结构。

指出明显问题的注释比没有注释更糟糕。除了在代码中添加噪音外,他们还倾向于与他们描述的代码不同步,并最终在代码的功能上彻头彻尾地撒谎

如果那里真的必须有注释,我可能会将注释改为“获取或设置员工的名字”,而不是“获取并设置名字”

与“按双倍计算的固定薪酬”不同,我会为变量取一个更好的名称。VS使重命名变量变得非常容易,只需将鼠标悬停在变量上并查看它是什么也非常容易,因此最好的文档是更具描述性的代码本身


对于
#region
s,如果该区域包含明显多于一种的方法,那么一个清晰命名的区域可能会有所帮助。但是,对于单个方法来说,这并不值得付出努力——VS已经可以随时折叠方法,因此一个
#region
会增加噪音,而不会给您带来任何好处。

如果在一个类/文件区域中有几千行代码,那么这些注释可能会用于自动生成代码的文档。与项目经理核实情况是否如此


我同意其他人的看法,即评论显而易见的东西绝对是浪费时间。固定工资是双倍工资就是这样一个评论。举个例子,或者其他不明显的信息会更有用。例如,“每周定期工资”或“每年定期工资”或“美分定期工资”。这些评论是必要的,因为头脑正常的人都不会将一个变量命名为RegularPayPerweekincents,包括超时和税收扣减。

如您所做的那样对变量进行评论将没有隐含的意义 有效性

   private double m_dRegularPay; 
都说出来了

现在对于区域来说,最好是在有巨大代码b的地方
private double regularPay;
   private double m_dRegularPay;