【问题标题】:Error CS1056: Unexpected character '$' Xamarin Studio错误 CS1056:意外字符“$”Xamarin Studio
【发布时间】:2017-01-10 15:41:47
【问题描述】:

我在 Visual Studio 2015 上有一个 Xamarin 项目,出于某种原因,我将它移到了最新版本的 Xamarin Studio(基于 MonoDevelop),我收到了这个错误:

Error CS1056: Unexpected character '$' (CS1056)

这就是发生的地方:

...
        public override string ToString()
        {
            return $"{Title}";
        }

我正在使用 C# 6.0 的新功能“字符串插值”。 我的代码在 Visual Studio 2015 上运行良好,为什么会出现此错误??

【问题讨论】:

  • 你使用的是什么 xamarian 编译器?
  • @DanielA.White 你是什么意思?我正在尝试构建一个 Android 应用。
  • 你用的是什么版本?
  • 对我来说很好,使用 Mono 4.2.2 (explicit/7b87787)
  • @patridge 我找不到解决这个问题的方法,所以只需将所有使用 C# 6 的代码更改为旧版本。

标签: c# monodevelop xamarin-studio


【解决方案1】:

项目属性中似乎有一个设置控制使用 C# 6 功能的能力。

双击涉及的每个项目以打开项目选项,转到构建 > 常规 [> C#(对于 PCL 项目)。从那里,选择 C# 语言版本下的版本 6。

平台项目示例

PCL 项目示例(注意需要的选项卡开关)

【讨论】:

  • 对我不起作用。它会引发另一个错误。你自己试过吗?
  • 是的。一旦我在解决方案中涉及的所有项目上设置它,它就可以解决我所有的 C# 6 错误。
【解决方案2】:

问题可能在于某些将 Unicode 与 ascii 混合的编辑器中的错误。这使得 Visual Studio 中的所有内容看起来都正确,但在另一个编辑器中打开时,可以看到文件已损坏。

【讨论】:

    【解决方案3】:

    当前版本的 Xamarin Studio 不支持 C#6.0 功能,包括字符串插值。

    有一个使用 Microsoft Roslyn 编译器并支持字符串插值的 Xamarin Studio 预览版(但请注意,截至 2016 年 1 月 11 日,当前版本实际上不会构建使用 C#6 功能的代码)。

    您可以获取预览版here

    【讨论】:

    • 您的说法不正确,我使用的是 XS 5.10.2 和 Mono 4.2.2,并且支持 C# 6 功能。 'Rosyln' 重构、代码问题、......功能在 XS 6.x 中,但单声道'mcs' 编译器自发布以来就具有 C#6 功能
    猜你喜欢
    • 2010-09-17
    • 2021-04-21
    • 1970-01-01
    • 1970-01-01
    • 2019-02-16
    • 1970-01-01
    • 1970-01-01
    • 2017-08-13
    • 1970-01-01
    相关资源
    最近更新 更多