아래 코드는 recrod struct
및 static abstract
를 이용해 간단히 구현한 코드입니다.
아래의 코드가 유용해 보이나요? 여러분 의견 댓글로 부탁 바랍니다~
var email1 = EMail.Parse("user1@email.com");
var email2 = EMail.Parse("user1@email.com");
var email3 = EMail.Parse("user2@email.com");
Console.WriteLine($"{email1 == email2}");
Console.WriteLine($"{email1 == email3}");
interface IParse<TSelf, TValue>
{
static abstract TSelf Parse(TValue value);
}
interface IValidate<TValue>
{
static abstract void Validate(TValue value);
}
record struct EMail(string Value) : IParse<EMail, string>, IValidate<string>
{
public static EMail Parse(string value)
{
EMail.Validate(value);
return new EMail(value);
}
// 미구현함
public static void Validate(string value)
{
//
}
}