逃避或逐字逐句,这是我的问题.
我需要以编程方式将一些命令发送到C#中的(Zebra QLn220)打印机,具体如下:
! U1 setvar "power.dtr_power_off" "off"
-和:
! U1 setvar "media.sense_mode" "gap"
由于这些命令中有过多的引号,我认为使用逐字字符串是明智的.但基于this,我仍然需要加倍报价,因此它可能/理论上需要像:
string dontShutErOff = @"! U1 setvar """power.dtr_power_off""" """off"""";
…看起来像是由Don King,cat from Coding Horror和Groucho Marx组成的混搭.
以这种方式逃避引号会更好吗:
string dontShutErOff = "! U1 setvar \"power.dtr_power_off\" \"off\"";
?
我应该逃离Verbatimtraz吗?
UPDATE
基于Eric Lippert的第一个建议,如何:
const string quote = "\""; string whatever = string.Format("! U1 setvar {0}power.dtr_power_off{0} {0}off{0}",quote);
解决方法
我会考虑第三种选择:
const string quote = "\""; string whatever = "! U1 setvar " + quote + "power.dtr_power_off" + quote + " " + quote + "off" + quote;
或者第四个:
static string Quote(string x) { const string quote = "\""; return quote + x + quote; } ... string whatever = "! U1 setvar " + Quote("power.dtr_power_off") + " " + Quote("off");
所有这些都有利有弊;没有一个是最好的.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。