string.Format () cho biết "Chuỗi nhập không đúng định dạng"


115

Tôi làm gì sai ở đây?

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);

tôi có

Chuỗi đầu vào không đúng định dạng

khi cố gắng thay đổi {0}. Tôi đang làm điều này trong C # và WinForms.

Định dạng Ngoại lệ không được xử lý
Chuỗi nhập không đúng định dạng

Mẹo khắc phục sự cố mà tôi nhận được:

Đảm bảo rằng các đối số phương thức của bạn ở đúng định dạng. Khi chuyển đổi một chuỗi thành datetime, hãy phân tích cú pháp chuỗi để lấy ra ngày trước khi đưa từng biến vào đối tượng DateTime.

Câu trả lời:


303

string.Format()coi mỗi '{' hoặc '}' là một phần của trình giữ chỗ (như '{0}' bạn đã sử dụng). Bạn cần phải thoát khỏi mỗi lần xuất hiện theo nghĩa đen bằng cách nhân đôi nó.

Vì vậy, trong trường hợp của bạn, hãy làm:

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

4
Cảm ơn bạn! Thông báo lỗi "Chuỗi nhập không đúng định dạng" không hữu ích gì đối với tôi. Tôi nghĩ rằng một trong các tham số của tôi là null hoặc gì đó.
styfle
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.