c# - Xamarin 示例项目未编译

标签 c# visual-studio-2013 xamarin xamarin.ios

我刚开始研究 Xamarin 并下载了一个预构建的联系人示例应用。

它不能在 Visual Studio 中编译,因为它充满了我以前从未见过的奇怪语法,谷歌搜索没有结果..

例如,这很奇怪:

[JsonIgnore]
public string AddressString => string.Format(
    "{0} {1} {2} {3}", Street,
    !string.IsNullOrWhiteSpace(City) ? City + "," : "",
    State, PostalCode);

[JsonIgnore]
public string DisplayName => ToString();

[JsonIgnore]
public string DisplayLastNameFirst => $"{LastName}, {FirstName}";

[JsonIgnore]
public string StatePostal => State + " " + PostalCode;

public override string ToString()
{
    return FirstName + " " + LastName;
}

这些奇怪的 lambda 表达式 - 它们是什么?为什么他们不是“=”?还有$符号? .NET 编译器将它们全部吐出。

这是另一个:

static int MatchScore(Acquaintance c, string query)
{
    return new[]
    {
        $"{c.FirstName} {c.LastName}",
        c.Email,
        c.Company,
    }.Sum(label => MatchScore(label, query));
}

编译器说 { 和 } 是预期的......

过去 5 年我错过了什么???

最佳答案

您看到的奇怪语法是 C# 6 语法。您需要在 VS 2015 中打开项目进行编译。

第一个有 lambda 表达式的是 Expression Bodied Members .您可以将第一个示例重写为

 public string AddressString 
 { 
    get 
    { 
        return string.Format("{0} {1} {2} {3}",
              Street, !string.IsNullOrWhiteSpace(City) ? City + "," : "",
              State, PostalCode);
    }
}

第二个带$符号的是string interpolation您可以将其替换为 string.Format

关于c# - Xamarin 示例项目未编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36530151/

相关文章:

c# - ASP引发MySQL异常的解决方法

c++ - error LNK2019 未解析的外部函数

c# - 无法加载文件或程序集 'System.Private.CoreLib...'

android - 如何解析 Android 项目中属性的 "No resource identifier found"?

c# - 控制台应用程序最终是否会通过编写大量 Console.WriteLine 耗尽内存

c# - 使用 ExpressionTree 分配属性

c++ - 错误 MSB6006 : "midl.exe" exited with code 2026

sql-server - VS2013数据库项目中的部署前和部署后脚本在哪里?

xamarin.ios - 从命令行获取 Xamarin 工具链版本信息

c# - JSON .Net 在反序列化时不遵守 PreserveReferencesHandling