> 백엔드 개발 > C++ > 문자열을 특정 유형으로 구문 분석할 수 있는지 일반적으로 테스트하려면 어떻게 해야 합니까?

문자열을 특정 유형으로 구문 분석할 수 있는지 일반적으로 테스트하려면 어떻게 해야 합니까?

Susan Sarandon
풀어 주다: 2024-12-30 19:05:16
원래의
347명이 탐색했습니다.

How Can I Generically Test if a String Can Be Parsed to a Specific Type?

TryParse를 사용하여 문자열 일반 테스트

문자열 값을 확인하기 위한 일반 확장 메서드를 만들려고 할 때 'TryParse'가 정의되지 않은 문제가 발생했습니다. 인터페이스를 개발하고 대체 솔루션을 찾았습니다.

대체 접근 방식 TypeDescriptor

TypeDescriptor 클래스는 지정된 데이터 유형에 대한 유형 변환기를 검색하는 방법을 제공합니다. 이 변환기는 문자열을 다른 유형으로 변환하거나 그 반대로 변환하는 데 사용할 수 있습니다. 업데이트된 코드 버전은 다음과 같습니다.

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

이 버전에서는 모든 대상 유형을 전달할 수 있으며 적절한 변환기를 사용하여 문자열을 해당 유형으로 변환하려고 시도합니다. 변환이 성공하면 메서드는 true를 반환합니다. 그렇지 않으면 false를 반환합니다.

예외 및 대안

예외 기반 접근 방식이 작동하지만 더 강력한 옵션을 선호할 수 있습니다. 예외를 사용하는 대신 Nullable 변환 성공 여부를 나타내는 값입니다.

또는 int, double 및 DateTime과 같은 일반적인 유형에 대한 오버로드를 생성하고 각 유형에 대한 사용자 정의 논리를 정의할 수 있습니다. 이렇게 하면 일반적인 구현이 필요하지 않으며 보다 효율적이고 유형이 안전한 변환이 제공됩니다.

위 내용은 문자열을 특정 유형으로 구문 분석할 수 있는지 일반적으로 테스트하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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