ドメインオブジェクト
Pros.
code:User.cs
class User {
// 手がかりが一切ない
public string Name { get; set; }
}
code:User.cs
class UserName {
private readonly string val;
public UserName(string val) {
// 要件がわかりやすく纏まっている!
if (val == null) throw new ArgumentNullException(nameof(val));
// 6文字以上とかにしたければここを変更するだけで済む!
if (val.Length < 3) throw new ArgumentException("ユーザ名は3文字以上です", nameof(val));
this.val = val;
}
}