2010-05-15 54 views
10

Tôi muốn chỉ định một mã xml vào một biến chuỗi. Tôi có thể làm điều này mà không cần thoát khỏi dấu nháy đơn hoặc kép bằng cách sử dụng dấu ba trong python. Có cách nào tương tự để thực hiện điều này trong F # hoặc C# không?điều gì đó giống như dấu ngoặc kép của python trong F # (hoặc C#)?

+0

Có vẻ như dấu ba chấm ngs đang tìm đường vào F # 3.0. –

Trả lời

8

Theo tôi biết, không có cú pháp tương ứng với điều này trong C#/F #. Nếu bạn sử dụng @"str" thì bạn phải thay thế báo giá bằng hai dấu ngoặc kép và nếu bạn chỉ sử dụng "str" thì bạn cần phải thêm dấu gạch chéo ngược.

Trong mọi trường hợp, có một số mã hóa của ":

var str = @"allows 
    multiline, but still need to encode "" as two chars"; 
var str = "need to use backslahs \" here"; 

Tuy nhiên, điều tốt nhất để làm khi bạn cần phải nhúng chuỗi lớn (chẳng hạn như dữ liệu XML) vào ứng dụng của bạn có lẽ là để sử dụng. Tài nguyên NET (hoặc lưu trữ dữ liệu ở một nơi khác, tùy thuộc vào ứng dụng của bạn). Nhúng các chuỗi ký tự lớn trong chương trình thường không được khuyến nghị lắm. Ngoài ra, có used to be a plugin để dán XML làm cây tạo các đối tượng cho C#, nhưng tôi không chắc liệu nó có tồn tại hay không.

Mặc dù, tôi cá nhân sẽ bỏ phiếu để thêm """ như đã biết từ Python sang F # - nó rất hữu ích, đặc biệt là cho tương tác kịch bản.

+0

Thnx Tomas. Tôi chỉ muốn quản lý nhiều tập tin xml "ngắn" dễ dàng bằng cách nhúng. Tôi nghĩ rằng tôi nên sử dụng singe-quote cho các thuộc tính XML. BTW, tôi đọc sách của bạn. Thật tuyệt vời. –

+1

@tk: Cảm ơn! Vâng, tôi nghĩ rằng việc nhúng các chuỗi không phải là "tà ác" như các hướng dẫn nói ... –

0

Trong C# cú pháp là @"some string"

see here

+0

Trông giống như chuỗi thô được trích dẫn ba lần. –

+3

Bạn vẫn cần mã hóa '" 'trong chuỗi, do đó, điều này không thực sự tương đương với cú pháp' "" "của Python. –

1

Như shoosh nói, bạn muốn sử dụng literals chuỗi đúng nguyên văn trong C#, nơi mà các chuỗi bắt đầu với @ và được bao trong dấu ngoặc kép. Ngoại lệ duy nhất là nếu bạn cần phải đặt một dấu ngoặc kép trong chuỗi, trong trường hợp này bạn cần phải tăng gấp đôi nó

System.Console.WriteLine(@"Hello ""big"" world");

sẽ ra

Hello "big" world

http://msdn.microsoft.com/en-us/library/362314fe.aspx

14

F # 3.0 hỗ trợ chuỗi được trích dẫn ba lần. Xem Visual Studio F# Team Blog Post on 3.0 features.

Các F# 3.0 SpecStrings và Nhân vật phần đặc biệt đề cập đến kịch bản XML:

Một chuỗi ba trích dẫn được quy định bằng cách sử dụng ba dấu ngoặc kép ("" ") để đảm bảo rằng một chuỗi bao gồm một hoặc nhiều chuỗi thoát được diễn giải nguyên văn. Ví dụ: chuỗi được trích dẫn ba lần có thể được sử dụng để nhúng các đốm màu XML:

Các vấn đề liên quan