我总是将我的常量加上CN_前缀,如下所示,但我现在正在编写接受标准的编码,我发现这个标准链接在这个网站上。标准说我应该删除CN_为我的常量。因此,通过下面的示例,如果我将CN_NetPrice更改为NetPrice,我将与同名的method属性发生冲突。显然我不能这样做所以我留下了一个问题。我是否有命名约定问题或者我的代码是否存在问题?
public class TicketInformation
{
private const string CN_StartDate = "StartDate";
private const string CN_EndDate = "EndDate";
private const string CN_NetPrice = "NetPrice";
private const string CN_NetTotalPrice = "NetTotalPrice";
private const string CN_Tickets = "Tickets";
public decimal NetPrice { get; set; }
public decimal NetTotalPrice { get; set; }
public decimal Tickets { get; set; }
public static TicketInformation Create(DateTime startDate, DateTime endDate)
{
try
{
TicketInformation ti = new TicketInformation();
using (DataTable dt = DAC.ExecuteDataTable(
"GetAllTicketInformationSelect",
DAC.Parameter(CN_StartDate, startDate),
DAC.Parameter(CN_EndDate, endDate)))
{
ti.NetTotalPrice = Convert.ToDecimal(dt.Rows[0][CN_NetTotalPrice]);
ti.NetPrice = Convert.ToDecimal(dt.Rows[0][CN_NetPrice]);
ti.Tickets = Convert.ToDecimal(dt.Rows[0][CN_Tickets]);
}
return ti;
}
catch (Exception ex)
{
throw new Exception(Convert.ToString(ex));
}
}
}
}
答案 0 :(得分:5)
我认为这里的问题只是名称的选择。例如,使用以下
删除CN_
的建议更改
private const string StartDate = "StartDate";
我对提交此内容的任何人的反馈都是你的名字不好。这不是开始日期。它是我们在显示信息时识别或标记开始日期的方式。我建议改为StartDateName
private const string StartDateName = "StartDate";
如果将此逻辑应用于所有常量,问题就会消失。
答案 1 :(得分:4)
你的常数实际代表净价(等)吗?它代表净价格列的名称。所以我建议:
private const string StartDateColumn = "StartDate";
private const string EndDateColumn = "EndDate";
private const string NetPriceColumn = "NetPrice";
private const string NetTotalPriceColumn = "NetTotalPrice";
private const string TicketsColumn = "Tickets";
或者:
private static class Columns
{
internal const string StartDate = "StartDate";
internal const string EndDate = "EndDate";
internal const string NetPrice = "NetPrice";
internal const string NetTotalPrice = "NetTotalPrice";
internal const string Tickets = "Tickets";
}
或使用枚举:
private enum Column
{
StartDate, EndDate, NetPrice, NetTotalPrice, Tickets;
}
...在其中一个枚举值上调用ToString
将给出名称。
答案 2 :(得分:0)
您有一个命名约定问题 - 您的常量字符串名称应该与它们所代表的实际属性的命名方式不同。