C# string.format 添加一个 "-"值?

标签 c# .net-4.0 string.format

我有一个 string.format 问题......

我正在尝试将我的发票 ID 作为参数传递给我的程序……无论我做什么,第 6 个参数总是以“-”结尾(我们必须使用 ¿ 因为是旧程序)。 ..

     public static void OpenIdInvoice(string wdlName, string IdInvoice, Form sender){
        MessageBox.Show(string.Format("¿{0}",IdInvoice));
        proc.Arguments = string.Format("{0}¿{1}¿{2}¿{3}¿{4}¿­{5}",
            session.SessionId.ToString(),
            Session.GetCurrentDatabaseName(),
            session.Librairie,
            wdlName,
            "",
            IdInvoice
        );
        System.Windows.Forms.MessageBox.Show(proc.Arguments);

最后,“-”总是添加到我的格式化结果中,但仅在我的 IdInvoice 之前......(所以 Id 10 在我的参数中以 -10 结束)

现在是有趣的部分......我硬编码了一些字符串......

如果我传递 -1 而不是 Id,结果是 --1 如果我写“banana”...我得到“-banana”...

我知道我可以用其他方式构建字符串...但我很好奇为什么会这样。

这是截图  minus banana ? ...

编辑:

那是我的代码的复制/粘贴

var proc = new System.Diagnostics.ProcessStartInfo("Achat.exe");
        System.Windows.Forms.MessageBox.Show(string.Format("¿{0}",args));
        proc.Arguments = string.Format(@"{0}¿{1}¿{2}¿{3}¿{4}¿­{5}¿{6}",
            "12346", //session.SessionId.ToString(),
            "fake DB",//Session.GetCurrentDatabaseName().ToString(),
            "false", //session.Librairie.ToString(),
            "myScreenName", //wdl.ToString(),
            "123456",
            "Banana",
            "123456"
            //args.ToString(), 

        );
        System.Windows.Forms.MessageBox.Show(proc.Arguments);
        System.Windows.Forms.MessageBox.Show(args);

这就是我的文本可视化结果的复制/粘贴:

12346 假 DB 假 myScreenName 123456 香蕉 123456

最佳答案

在“{5}”之前确实有一个额外的字符,称为 soft hyphen .它是那些并不总是显示的奇怪字符之一。如果您将光标放在“{5}”中的“{”之后,然后按向左箭头,然后按退格键,它实际上将被删除。或者您可以尝试使用像 Notepad++ 这样的编辑器来显示它。我能够通过运行以下代码找到它

var t = @"{0}¿{1}¿{2}¿{3}¿{4}¿­{5}";
foreach (var c in t)
{
    Console.WriteLine((int)c + " " + c);
}

打印出来

123 {
48 0
125 }
191 ¿
123 {
49 1
125 }
191 ¿
123 {
50 2
125 }
191 ¿
123 {
51 3
125 }
191 ¿
123 {
52 4
125 }
191 ¿
173 -
123 {
53 5
125 }

关于C# string.format 添加一个 "-"值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43007954/

相关文章:

c# - 在内部访问数据库的webapi方法中处理多个请求

C# timer_Tick() countdown 分2步倒计时

c# - 使用 LINQ Where/Take 返回最相关的搜索结果

c# - 如何将 string.Format 应用于 SQL 结果?

c# - 如何使用 C# 在本地自动获取在线 HTML 表

c# - 无法复制文件 "C:\pagefile.sys",因为找不到

.net - 使用 MSBuild 在 Server 2016 上构建面向 .Net 4.0 的 ASP.Net 项目

algorithm - 计算人类如何感知不同颜色之间的相似性

java - 将字符串文字拆分成多行

c# - String.Format 在 HTML 电子邮件模板的样式部分失败