나는 bool
의 TryParse
방법을 "예"와 "아니오"로 바꾸고 싶습니다. 내가 (아래) 사용하고자하는 방법을 알고 있지만 bool
의 메서드를 재정의하는 방법을 모르겠습니다.TryParse를 재정의하려면 어떻게해야합니까?
... bool TryParse(string value, out bool result)
{
if (value == "yes")
{
result = true;
return true;
}
else if (value == "no")
{
result = false;
return true;
}
else
{
return bool.TryParse(value, result);
}
}
개인적으로 Parse 메서드가'Nullable <>'을 반환하는 것을 좋아합니다. 문자열이 파싱되지 않으면 반환 값은 null입니다. 이렇게하면 out 매개 변수가 필요 없으며 멋진 호출 구문을 만들 수 있습니다. 예 : 'bool a = "blah".ParseBool() ?? false;' – Greg
'Nullables'은 실제로 구문 분석에 편리하지만, 기존의 TryParse 메소드를 오버라이드하려고했습니다. 이제는 내 자신을 쓰고있어, 그럴거야. 또한,'StringComparison.OrdinalIgnoreCase'를 사용하고 있지만이 예제를 더 깔끔하게 보이게하지 않았습니다. 마지막으로, 출력 타입이 'bool'일 때 왜 메소드 'TryParseBoolean'에 라벨을 붙이겠습니까? ('Nullables'로 바꾸었다면 그 이름이 필요할 것입니다.) – dlras2
@ cyclotis04 - 잘 부탁드립니다. out 매개 변수 때문에'TryParse'라는 이름으로 충분할 것입니다. – Greg