string.Format ()이 "입력 문자열이 올바른 형식이 아닙니다"를 제공합니다.


115

여기서 내가 뭘 잘못 했니?

string tmp = @"
    if (UseImageFiles) {
        vCalHeader += ""<td><img onmousedown='' src= '{0}cal_fastreverse.gif' width='13px' height='9' onmouseover='changeBorder(this, 0)' onmouseout='changeBorder(this, 1)' style='border:1px solid white'></td>\n""; //Year scroller (decrease 1 year)
        calHeight += 22;
    }";

string x = "xter";
tmp = string.Format(tmp, x);

나는 얻다

입력 문자열이 올바른 형식이 아닙니다.

변경하려고 할 때 {0}. 나는 C #과 WinForms에서 이것을하고 있습니다.

형식 예외가 처리되지 않았습니다.
입력 문자열이 올바른 형식이 아닙니다.

내가 얻은 문제 해결 팁 :

메소드 인수가 올바른 형식인지 확인하십시오. 문자열을 datetime으로 변환 할 때 각 변수를 DateTime 개체에 넣기 전에 문자열을 구문 분석하여 날짜를 꺼내십시오.

답변:


303

string.Format()각 '{'또는 '}'를 자리 표시 자의 일부로 간주합니다 (예 : 이미 사용중인 '{0}'). 각 리터럴 발생을 두 배로 이스케이프해야합니다.

따라서 귀하의 경우에는 다음을 수행하십시오.

 string tmp = @"
    if (UseImageFiles) {{
        ...
    }}";

4
감사합니다! "입력 문자열이 올바른 형식이 아닙니다."라는 오류 메시지가 전혀 도움이되지 않았습니다. 내 매개 변수 중 하나가 null 또는 무언가라고 생각했습니다.
styfle
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.