>백엔드 개발 >C++ >C#에서 일반 유형 유효성 검사에 `TryParse`를 사용할 수 있습니까?

C#에서 일반 유형 유효성 검사에 `TryParse`를 사용할 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2025-01-03 16:28:38132검색

Can `TryParse` Be Used for Generic Type Validation in C#?

'TryParse'로 일반 유형 유효성 검사 확장

주어진 문자열이 사전 정의된 유형을 준수하는지 확인하기 위한 시도는 다음과 같습니다. 'TryParse'를 활용한 일반 확장을 개발 중입니다. 그러나 'TryParse'가 아직 해결되지 않았기 때문에 이러한 노력은 컴파일 장애에 직면했습니다.

이 문제의 핵심은 'TryParse'가 인식 가능한 인터페이스 내에 캡슐화되어 있지 않다는 사실에 있습니다. 따라서 이러한 구현의 타당성에 대한 의문이 제기됩니다.

한 가지 잠재적인 해결책은 이 목적을 위해 특별히 설계된 메커니즘인 TypeDescriptor 클래스를 활용하는 것입니다. 이 클래스를 통합하면 더욱 강력한 접근 방식을 채택할 수 있습니다.

public static T Convert<T>(this string input)
{
    try
    {
        var converter = TypeDescriptor.GetConverter(typeof(T));
        if (converter != null)
        {
            // Cast ConvertFromString(string text) : object to (T)
            return (T)converter.ConvertFromString(input);
        }
        return default(T);
    }
    catch (NotSupportedException)
    {
        return default(T);
    }
}

이 업데이트된 접근 방식은 여러 가지 장점을 자랑합니다.

  • 예외의 필요성을 없애고 보다 세련되고 효율적인 솔루션입니다.
  • 제네릭에 의존하지 않고 특정 유형을 수용하는 유연성을 유지하므로 더 많은

궁극적으로 이 수정된 솔루션은 사전 정의된 유형에 대해 주어진 입력 문자열의 유효성을 확인하는 수단을 제공하여 초기 문제를 효과적으로 해결합니다.

위 내용은 C#에서 일반 유형 유효성 검사에 `TryParse`를 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.