2016-04-10 7 views
2

Ich fing gerade an, Xamarin zu betrachten und lud eine vorgebaute Kontaktbeispielanwendung herunter.Xamarin-Beispielprojekte, die nicht kompiliert werden

Es kompiliert nicht in Visual Studio, weil es voller seltsamer Syntax ich vorher noch nie gesehen, Google nur knapp sein Ziel Obst Suche ..

Für eample, das ist seltsam:

[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; 
} 

Dieses seltsame Lambda Ausdrücke - was sind sie? Warum sind sie nicht "="? Und die $ Zeichen? Der .NET-Compiler spuckt sie alle aus.

Dies ist ein anderes:

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

Der Compiler sagt {} und erwartet ...

Was habe ich in den letzten 5 Jahren verpassen ???

Antwort

10

Die seltsame Syntax, die Sie sehen, ist C# 6-Syntax. Sie müssen das Projekt in VS 2015 öffnen, um es zu kompilieren.

Die erste mit Lambda-Ausdrücken ist Expression Bodied Members. Sie können das erste Beispiel umschreiben als

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

Der zweite mit Zeichen $ string interpolation ist und Sie können es ersetzen mit string.Format

Verwandte Themen