ストリングを使用してポコをポピュレートするメソッドを作成するときは、Int32.Parse()
のような静的メソッドを持つか、コンストラクタにオーバーロードして文字列を渡す方が良いでしょうか?コンストラクタはちょうどParse
を呼び出すことができますので、コンストラクタをパースするか、コンストラクタをオーバーロードする
6
A
答えて
9
私は、コンストラクタのバージョンを好むが、両方を含むが、簡単です。これはGuid
構造体が続くパターンである(だけでなく、おそらく他のもの。)
struct
を扱っていない場合は、その後、
static
方法は、おそらくコンストラクタを参照する(あるいはされるべきであることを追加する必要があります
あなたがclass
コンストラクタでthis
に割り当てることができないので、両方とも呼び出すことができる別のメソッド)。
EDIT:TrueWillが指摘するように、あなたがParse
を含める場合、あなたにもTryParse
を含める必要があります。ちなみに、Guid
は再び有益である:Parse
方法は、実際にTryParse
を使用し、TryParse
はfalse
を返した場合だけ例外がスローされます。
0
単純なオブジェクトの場合は.Parse(string s)を使用することをお勧めします。オブジェクトにコンストラクタを使用する必要がある場合は1-2個の値が格納されます。つまり、戻り値がparse値の影響を受けないメンバーを持つインスタンス。
2
無効な文字列のためにメソッドが失敗する可能性がある場合、私はParseに傾き、TryParse patternとしてTryParseを含めます。
+0
+1はTryParseのために+1ですが、IDはまだ両方ともdlevsに行きますが、試し構文解析も行います – Manatherin
関連する問題
- 1. コンストラクタのオーバーロード
- 2. "base"コンストラクタまたは "this"コンストラクタのオーバーロード?
- 3. コンストラクタがオーバーロードしていますか?
- 4. pythonでコンストラクタをオーバーロードする方がいいですか?
- 5. 構造体コンストラクタのオーバーロード?
- 6. オーバーロードされたコンストラクタでコードリピート
- 7. 組み込みの型コンストラクタをPHPでオーバーロードする
- 8. コンストラクタでCのオーバーロード関数を使用する方法#
- 9. オーバーロードされたコンストラクタを作成する方法は?
- 10. "this"コールでオーバーロードされたコンストラクタを実装する
- 11. タイプに基づいて汎用クラスのコンストラクタをオーバーロードする
- 12. C++リンクリスト - コンストラクタと演算子オーバーロード
- 13. C#のオーバーロードされたコンストラクタの発行
- 14. オーバーロードされたコンストラクタの使用
- 15. Java:オーバーロードされたコンストラクタ間の選択
- 16. initializer_listの場合に転送コンストラクタをオーバーロードするのはなぜですか?
- 17. null引数を持つオーバーロードされたコンストラクタを呼び出す
- 18. 変換コンストラクタを演算子のオーバーロードと組み合わせる
- 19. コンストラクタでクラスメンバのコンストラクタを呼び出す
- 20. laravel親のコンストラクタを子コンストラクタ
- 21. Autofac RegisterTypeコンストラクタのパラメータ型から継承するコンストラクタを使用する場合
- 22. 他のコンストラクタを呼び出すコンストラクタでエラーが発生する
- 23. オーバーロードされたコンストラクタを理解する必要があります
- 24. kotlinでコンストラクタをオーバーロードする方法はラムダ戻り型で異なります
- 25. UdpClientコンストラクタSocketExceptionをスローする
- 26. ポイントのコンストラクタをコピーする
- 27. 非コンストラクタをサブクラス化する
- 28. コンストラクタをコピーする - C++
- 29. コンストラクタをポインタでコピーする
- 30. オーバーロードされたコンストラクタ入力タイプに基づいて他のコンストラクタを呼び出す
完全性のために+1。 – deepee1