> 백엔드 개발 > C++ > C#에서 일반 TryParse 메서드를 어떻게 구현할 수 있나요?

C#에서 일반 TryParse 메서드를 어떻게 구현할 수 있나요?

Mary-Kate Olsen
풀어 주다: 2025-01-04 05:07:43
원래의
632명이 탐색했습니다.

How Can I Implement a Generic TryParse Method in C#?

일반 TryParse: 대체 접근 방식 탐색

'TryParse'를 사용하여 일반 확장을 구현하여 특정 유형으로의 문자열 변환을 검증하려고 하면 발생할 수 있는 문제 인터페이스 방법으로 'TryParse'가 부족하기 때문에 발생하는 문제입니다. 이 기사에서는 이러한 장애물을 극복할 수 있는 잠재적인 솔루션을 살펴봅니다.

커뮤니티에서 제안한 한 가지 접근 방식은 TypeDescriptor 클래스를 활용하는 것입니다. 이 클래스는 특정 유형에 대한 변환기를 얻는 방법을 제공합니다. 검색된 변환기에서 ConvertFromString 메서드를 호출하면 문자열 입력을 원하는 형식으로 변환할 수 있습니다. 이 방법은 변환 중에 발생할 수 있는 예외도 처리합니다.

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);
    }
}
로그인 후 복사

또는 대상 유형을 매개변수로 허용하도록 코드를 수정하여 제네릭이 필요하지 않게 할 수도 있습니다. 이 접근 방식은 변환 프로세스를 더 효과적으로 제어할 수 있습니다.

public static bool Is(this string input, Type targetType)
{
    try
    {
        TypeDescriptor.GetConverter(targetType).ConvertFromString(input);
        return true;
    }
    catch
    {
        return false;
    }
}
로그인 후 복사

예외 기반 접근 방식이 색다른 것처럼 보일 수도 있지만 일반 문자열 변환을 수행하는 과제에 대한 실행 가능한 솔루션을 제공합니다.

위 내용은 C#에서 일반 TryParse 메서드를 어떻게 구현할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿