質問: value; } } // 成功した場合は返り値として社員番号を返す。失敗した場合はドメインイベントを発行する。 EmployeeNumber GetEmployeeNumberBy(string name, DateTime birthDay) { // ~~ 省略 ~~ // 詳細には書ききれないので、かなり省略します if(名前が見つからなかった) domainEvent.Publisher(new DomainEvent(FailedReason.NotMatchedName)); if(誕生日が見つからなかった) domainEvent.Publisher(new DomainEvent(FailedReason.NotMatchedBirthDay)); return 社員番号 } ``` 長くなりましたが --------- 長文となり申し訳ありませんが、「1~5のうち●番が良い」とか、「こういう方法が良い」等、ご教授のほど、宜しくお願い致します。 また、これが良いとは言わないまでも、普段こうしているというのがあれば教えていただけると幸いです。
回答: C からの習慣でしょうか、 out または、 ref です。 戻り値を boolにして判定します。 例外は、使いません。 まあ、結果が失敗するのが例外的なら別ですが、むちゃ遅いです。 (一つの処理で数か所も使うと、体感的にも分かります) 戻り値を boolで、メソッドそのまま、 if文に含める。 タプルは未だ、メリットが実感できてない。 (そういう場面に出会ってない?)