【问题标题】:String.Format() doesn't work, but string.Format() doesString.Format() 不起作用,但 string.Format() 起作用
【发布时间】:2019-04-29 19:54:23
【问题描述】:

如果不是亲眼所见,我不会相信。

string test = String.Format( "{0} test {1}", "Mark", 13 );

变量test的值"{0} test {1}"

string test = string.Format( "{0} test {1}", "Mark", 13 );

变量test 的值为"Mark test 13"

Whhhhaaaattt?顺便说一句,这是 Xamarin。我在这里很困惑。视觉工作室 8.0.4。我已将 test 的值分配给 UI 元素,将其记录到 LogCat,并使用调试器查看它。他们都同意奇数。

【问题讨论】:

  • 这是在 Android 项目中还是在单独的库中?哪个版本的 Android/mono/.NET。等等?
  • 字符串是系统命名空间的一部分。如果您的文件顶部没有using String;,或者如果您没有使用System.String 完全限定引用,那么您使用的字符串可能实际上不是System.String。在 C# 中,您几乎不应该直接使用 String。相反,请使用string
  • 安装ReSharper,它的默认规则是使用内置类型然后你就不会再看到这些问题了:) jetbrains.com/help/resharper/Built_In_Type_Naming.html

标签: c# xamarin xamarin.android


【解决方案1】:

如果您以 Android 为目标,您的 String 类引用 java.lang.String(不是 System.String,在 .NET 中别名为 string

它有 Format 方法,但占位符不同 https://developer.xamarin.com/api/member/Java.Lang.String.Format/p/System.String/Java.Lang.Object%5B%5D/

对于预期的占位符检查例如: https://dzone.com/articles/java-string-format-examples

【讨论】:

  • 啊哈!谢谢!这是我在 Xamarin 中还不习惯的。
猜你喜欢
  • 2013-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多