C#是否删除了字符  •来自一个字符串?

时间:2017-10-19 08:18:55

标签: c# xamarin xamarin.forms

我有这个C#代码用于填充手机屏幕上的标签。请注意,这里不使用HTML源代码。

c1Label.Text = "To select cards for your deck you can one of a number of options 
 •

和这个XAML

<local:JustifiedLabel x:Name="c1Label" Text= "To select cards for your deck you can one of a number of options &#10; &#x2022; 

前者显示&amp;#10作为文本的一部分,但XAML版本工作正常并将其显示为换行符后跟子弹。

1 个答案:

答案 0 :(得分:6)

这是可以预料的。两种语言(C#和XML)都有不同的规则,特别是关于哪些字符是“特殊的”以及当你想要使用它们时必须如何转义它们。在C#字符串

"&#10; &#x2022;"

正是那些字母,因为它们对C#编译器没有特殊意义。在XML中,它们是数字字符引用,是包含任意字符的转义机制。

相反,在C#中如下

"\n \u2022"

代表换行符和子弹。但在XML中,它只是所写的确切字符。

你可以用几乎任何两种不同的语言构建无穷无尽的例子。是的,这意味着您不能只从一种语言复制文本,并期望它用另一种语言表示相同的字符串。如果你正在将一种语言转换成另一种语言,那么很容易以编程方式处理,当你手动复制东西时,你只需要忍受这种情况并相应地进行调整。