是逐字还是逃避在C#中处理引用丰富的字符串的首选方法?
发布时间:2020-12-16 00:24:10 所属栏目:百科 来源:网络整理
导读:逃避或逐字逐句,这是我的问题. 我需要以编程方式将一些命令发送到C#中的(Zebra QLn220)打印机,具体如下: ! U1 setvar "power.dtr_power_off" "off" -和: ! U1 setvar "media.sense_mode" "gap" 由于这些命令中有过多的引号,我认为使用逐字字符串是明智的.
逃避或逐字逐句,这是我的问题.
我需要以编程方式将一些命令发送到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"); 所有这些都有利有弊;没有一个是最好的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |