【发布时间】:2017-10-24 13:33:30
【问题描述】:
所以我有一个格式问题。我有一个消费者模型,它有一次将消费者模型数据形成字符串的方法。每个字段都有自己定义的长度:
public class ConsumerModel
{
public string ConsumerId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string GenerateConsumerString()
{
var request = FormatRequestField(ConsumerId, 12);
request += FormatRequestField(FirstName, 15);
request += FormatRequestField(LastName, 20);
return request;
}
}
FormatRequestField(string, int) 方法接受该字段并返回一个字符串,该字符串已被编辑/填充为整数给定的长度。我的问题是,字段的长度是否应该存储为私有变量?我知道这是正常的做法,所以你不会得到“神秘”整数——但每个整数只使用一次。鉴于在我的实际代码中,该模型有大约 50 个属性,这似乎需要大量额外的代码行来将字段长度存储为私有变量。
我只是想知道这种情况下的最佳做法是什么。感谢您的帮助。
【问题讨论】:
-
我第一次发现自己不得不重复数字时就开始使用常量。或者是否存在多个字段出于相同原因具有相同长度的情况,例如地址行?如果您真的真的只使用一次它们,那么您的代码就是自我记录的。它表示名字是十五个字符。在现实生活中,我可以想象必须复制这些数字。但在需要之前,我仍然不会做额外的工作。
-
在一般情况下,您应该声明与其位置分开的幻数。当您知道幻数的位置时,维护代码会更容易,并且它允许您立即重用它们而无需检查您的值,以防您不得不多次使用它们。关于在哪里声明这些,不太确定是否有好的做法。我一直在做中等规模的面向电子的项目,我主要用一个完全幻数/定义专用类常量来声明它们,这在某种程度上是我的电子相关文件(数据格式、引脚等)。
-
取决于您是否认为该数字是该类实例的一个组成部分,或者只是作为您方法中的一个变量。无论如何,这是非常自以为是的,这就是我投票结束这个问题的原因。
标签: c# coding-style private-members