분명히 이것은 무력한 상황에 있지 않는 한 원하는 것이 아니지만 누구나 이와 같은 좋은 예가 될 수 있습니다 (생각할 때 보너스 포인트가 있음). 명확한 방법 이름) : 내가 가진문자열을 알 수없는 기본 유형으로 변환 (최선의 추측)
public static object ConvertToBestGuessPrimitive(string toConvert)
{
if(looksLikeAnInt)
{
return as an int;
}
else if(looksLikeABoolean)
{
return as a boolean;
}
else
{
return as a string;
}
}
유일한 아이디어는 함께 체인 현명한 위해 함께 TryParse 방법의 무리이고 아무것도 작동하지 않는 경우 문자열로 다시 떨어진다. 누구든지 더 나은 것을 생각할 수 있습니까? 이 질문은 이미 어딘가에서 이미 답변되었지만 일반적으로 지나치게 일반적인 검색어를 사용하면 유용한 결과를 찾지 못하는 것 같습니다.
편집 - 예가 없으면 이것이 얼마나 유용 할 것인가에 대한 비판이 있었기 때문에 구체적인 필요를 충족시키기 위해 내놓은 것은 여기에있다. (나는 믿기지가 않는다.) ... 내가 얻은 오류 로그 파일을 파싱한다고 가정 해 보겠다. 통제되지 않은 출처에서. 로그 파일에는 오류가 발생한 위치에 제공된 메소드 이름과 인수가 있습니다. 가장 일치하는 메서드와 인수를 찾아서 다시 호출하려고 시도하여 오류 조건을 테스트하는 작업을 자동화하려고합니다. 어쩌면 어리석은 예가 될 수 있습니다. (다만이 예제에서 볼 수 있듯이 "이 시나리오에서는 응답을 시도 할 수는 없지만 시도해보십시오.)하지만 몇 가지 사항을 보여줍니다. 1) 입력이 제어 할 수 없습니다. 2) 최선의 추측은 적절한 일치를 찾는 몇 가지 기준에 근거합니다. 예 : "10/2/2012"는 문자열보다 DateTime을 의미 할 가능성이 큽니다.
그 방법을 동적으로 선언하지 않는 이유는 Switch 문을 쓰는 이유입니다. 여기서 'toConvert'를 사용하여 검사하는 경우도 있습니다. 메서드 이름 이제 시작하는 방법을 설명하는 메소드 이름이 나오기에 충분히 똑똑해야합니다. 당신이하고있는 일이나하려고 한 일, 예를 들어'ConvertToPrimitiveType' – MethodMan
나는 그것을 얻지 못합니다. 이 방법을 어떻게 사용 하시겠습니까? 어떻게 유용 할 수 있습니까? – nmat
@nmat에 동의합니다. 어쩌면 당신이 그것을 사용하고 싶은지에 대한 예를 보여줄 수 있습니다. –