2016-04-10 8 views
2

Xamarinを見て、事前に作成した連絡先サンプルアプリケーションをダウンロードしました。Xamarinのサンプルプロジェクトはコンパイルされていません

それは私が前に見たことがない奇妙な構文がいっぱいですので、それはGoogleがeampleについて..

を果物をdidntの検索、これは奇妙では、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; 
} 

これらの奇妙なラムダ表現 - 彼らは何ですか?なぜ彼らは "="ではないのですか?そして、$記号は? .NETコンパイラはそれらをすべて吐き出します。

これは別のものである:

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

コンパイラは述べています{と}が期待されている...私は過去5年間で

何を見逃しましたの?

答えて

10

奇妙な構文はC#6の構文です。プロジェクトをコンパイルするには、VS 2015でプロジェクトを開く必要があります。

ラムダ式を持つ最初のものはExpression Bodied Membersです。あなたは$記号を有する第二1はstring interpolationであり、あなたはstring.Format

に置き換えることができ

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

として最初の例を書き換えることができます

関連する問題