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

2番目のものは間違いなく好ましいIMOです:

public Single Amount { get; set; }

外部からは明確ではない (型キャストなどの) バックグラウンドで、クラスがあいまいなことを行うことは望ましくありません。

クラス プロパティの形式に準拠するのは外部コードの仕事であり、その逆ではありません。

于 2012-04-23T15:06:22.910 に答える
0

彼らが短いバージョンを指定した主な理由は、長いバージョン全体を書く必要がないためです。そのため、短いバージョンから始めるべきです。

public Single Amount { get; set; }

暗黙的な変換は非常に悪い考えです。変換が行われていることをユーザーが認識し、関数が誤って何も取得しないように、明示的な変換が必要になることは間違いありません。プロパティ内で変換を行う場合、プロパティはオブジェクトを期待していることを考慮してください。これは、Single に変換可能なオブジェクトである可能性があるため、エラーの可能性が生じます。

0プロパティのユーザーに、何らかの理由でプロパティに何か問題を割り当てたことを発見させたくない場合は、デバッグを行う必要があるよりも、コンパイラに事前に警告してもらいたいと考えています。

彼らがあなたに与えるものを変換するのはあなたの責任ではありませんが、むしろ彼らがシングルを与えることを期待しています...

于 2012-04-23T15:07:17.807 に答える
0

行動の違いにもかかわらず、パフォーマンスは無視できるはずです

于 2012-04-23T15:05:56.267 に答える