문자열 값을 확인하기 위한 일반 확장 메서드를 만들려고 할 때 '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 중국어 웹사이트의 기타 관련 기사를 참조하세요!