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;