ストリングを使用してポコをポピュレートするメソッドを作成するときは、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. 組み込みの型コンストラクタをPHPでオーバーロードする
- 4. C++リンクリスト - コンストラクタと演算子オーバーロード
- 5. オーバーロードされたコンストラクタの使用
- 6. 変換コンストラクタを演算子のオーバーロードと組み合わせる
- 7. null引数を持つオーバーロードされたコンストラクタを呼び出す
- 8. コンストラクタでクラスメンバのコンストラクタを呼び出す
- 9. UdpClientコンストラクタSocketExceptionをスローする
- 10. コンストラクタをコピーする - C++
- 11. ポイントのコンストラクタをコピーする
- 12. オーバーロードされたコンストラクタを理解する必要があります
- 13. 他のコンストラクタがあるコンストラクタを呼び出す
- 14. C# - (コンストラクタで)このメソッドを実行する理由は、コンストラクタ
- 15. コンストラクタはデフォルトのコンストラクタを生成していますか?
- 16. 依存性注入 - ロジックをオーバーロードされたコンストラクタに配置しますか?
- 17. コンストラクタ
- 18. コンストラクタ
- 19. コンストラクタ「」
- 20. コンストラクタを継承することによるコンストラクタ呼び出しの逆順
- 21. Javaコンストラクタは、最初のコンストラクタに依存する別のコンストラクタに依存する条件を必要とします。 (蛇がその尾をかむ)
- 22. オーバーロードされたコンストラクタに基づくポリシークラステンプレートパラメータの選択
- 23. オーバーロードされたコンストラクタのあいまいさ
- 24. vb.NETの抽象クラスのオーバーロードされたコンストラクタ
- 25. 基本クラスのコンストラクタを呼び出す派生クラスのコンストラクタ
- 26. 2引数のコンストラクタを呼び出す引数のないコンストラクタ
- 27. "test *"から "test"コンストラクタに変換するコンストラクタはありません
- 28. コンストラクタはC++で別のコンストラクタを呼び出すことはできますか?
- 29. コンストラクタでSqlDateTime.Nullを設定する
- 30. boost :: bindをコンストラクタで使用する
完全性のために+1。 – deepee1