2011-12-19 6 views
5

Tôi đang cố gắng viết trình tạo mã bằng ứng dụng giao diện điều khiển C#. Bây giờ khi tôi nhập thông tin này, tôi nhận được thông báo lỗi:Viết phạm vi ({) vào chuỗi trong giao diện điều khiển ứng dụng

Console.WriteLine("sphere {{0}{1} {2} texture{Gold_Metal}}", 
    pre, i.ToString(), sprad.ToString()); 

Nó nói "đầu vào sai định dạng" Tôi đã kiểm tra tất cả các biến là chuỗi và chúng là. Khi tôi đã thử

Console.WriteLine("sphere {0}{1} {2} textureGold_Metal", 
    pre, i.ToString(), sprad.ToString()); 

Nó hoạt động hoàn toàn tốt. Có cách nào để sửa lỗi này?

+0

Chỉ cần thoát niềng răng với chính mình khi bạn cần. – Centro

Trả lời

4

Giả sử bạn muốn có một literal { chèn vào trong dòng, bạn cần phải thoát khỏi một bạn { với chưa khác cú đúp như sau:

Console.WriteLine("sphere {{{0}{1} {2} ... 
          ^^ 
          ||-- see here. 

Tương tự như vậy cho đến cuối-nẹp, đây là chi tiết trong MSDN định dạng chuỗi Câu hỏi thường gặp here. Trình tự {{ trở thành {}} trở thành }.

Từ những gì tôi hiểu ý định của bạn là, báo cáo kết quả đầy đủ trong trường hợp cụ thể của bạn sẽ là:

Console.WriteLine("sphere {{{0}{1} {2} texture{{Gold_Metal}}}}", 
    pre, i.ToString(), sprad.ToString()); 

mà nên cung cấp cho bạn một cái gì đó như:

sphere {<Arg0><Arg1> <Arg2> texture{Gold_Metal}} 
2

Bạn cần phải sử dụng {{ để "thoát" cặp ngoặc nhọn. Writeln diễn giải {{0} là 'chữ' {theo sau là 0}, dẫn đến lỗi định dạng sai.

+0

Cảm ơn! Tôi đã thử sử dụng \ {nhưng điều đó không tốt lắm. – SharkRetriever

0

Thay đổi nội dung bạn phải viết và xem nó có hoạt động hay không .. cũng đảm bảo rằng bạn đang chuyển đổi các loại biến nơi bạn có .ToString(); sẽ cần phải biết những gì các loại khai báo thực tế là .. dán mã ở nơi bạn đã khai báo trước, sprad, và i

Console.WriteLine(string.Format("sphere {0}{1} {2} textureGold_Metal", 
    pre, i.ToString(), sprad.ToString()));