Если вы хотите сказать
QStrign qs;
UnicodeString us(qs);
или
UnicodeString us;
QString qs(us);
, то нет, вы не можете этого сделать, если не можете изменить либо из классов. Конечно, вы можете ввести новую строку:
NewString ns;
UnicodeString us(ns);
QString qs(us);
NewString nsus(us);
NewString nsqs(qs);
Я не уверен в элегантности этого подхода, хотя по сравнению с вашими двумя явными функциями преобразования.
Используйте дублированные двойные кавычки.
@"this ""word"" is escaped";
выходы:
this "word" is escaped
Используйте двойные кавычки.
string foo = @"this ""word"" is escaped";
Для добавления дополнительной информации ваш пример будет работать без символа @
(он предотвращает экранирование с помощью \) следующим образом:
string foo = "this \"word\" is escaped!";
Он будет работать в обоих направлениях, но Я предпочитаю стиль двойных кавычек, чтобы упростить работу, например, с именами файлов (с большим количеством \ в строке).
Это должно помочь прояснить любые вопросы, которые могут у вас возникнуть: литералы c #
Вот таблица из связанного содержимого: