1

我想知道哪个被认为更正确或更好的做法:

部分课程:

public class foo
{
private Single amount;
public Single Amount
{
get
    {
        return amount;
    }
set
    {
        amount = Convert.ToSingle(value);
    }
}
}

或者

public Single Amount {get;set;}

并转换代码中的值,例如:

foo myFoo = new foo();
myFoo.Amount = Convert.ToSingle(somevalue);

我将从数据库中获取值(somevalue),因此我可以轻松地将所有值作为字符串传递给类并在那里处理所有转换(或在数据访问层中进行转换)。我只想知道哪个是更好的做法(或者我没有想到的)。

4

3 回答 3

4

第二个绝对是更可取的 IMO:

public Single Amount { get; set; }

你不希望你的班级在后台做一些从外面看不清楚的事情(比如类型转换)。

符合类属性格式是外部代码的工作,而不是相反。

于 2012-04-23T15:06:22.910 回答
0

尽管行为差异,性能应该可以忽略不计

于 2012-04-23T15:05:56.267 回答
0

他们指定短版本的主要原因是您不必编写整个长版本,因此您应该从短版本开始:

public Single Amount { get; set; }

隐式转换是一个非常糟糕的主意,您肯定需要显式转换,以便您的用户知道转换正在进行并且您的函数不会意外地采取任何措施。考虑一下,当您在属性内进行转换时,您的属性将需要一个对象,该对象可能是可转换为 Single 的任何对象,因此您引入了错误的可能性。

您不希望您的属性的用户发现他给它分配了一些错误,导致它0由于某种原因变成了错误,您宁愿希望编译器提前警告他,而不是让他不得不通过一些调试。

转换他们给你的任何东西不是你的责任,而是希望他们给一个单身......

于 2012-04-23T15:07:17.807 回答