Ich bin verwirrt, warum dieser Code nicht kompiliert werden kann: var result = $"{fieldName}{isDescending ? " desc" : string.Empty}"; Wenn ich es aufteile, funktioniert es gut: var desc = isDescending ? " desc" : string.Empty; var result =
Ich bin verwirrt, warum dieser Code nicht kompiliert werden kann: var result = $"{fieldName}{isDescending ? " desc" : string.Empty}"; Wenn ich es aufteile, funktioniert es gut: var desc = isDescending ? " desc" : string.Empty; var result =
Mit C # 6.0 in der VS2015-Vorschau haben wir einen neuen Operator ?., der wie folgt verwendet werden kann: public class A { string PropertyOfA { get; set; } } ... var a = new A(); var foo = "bar"; if(a?.PropertyOfA != foo) { //somecode } Was genau macht
Ich habe ein Beispielprojekt mit C # 6.0-Extras erstellt - Null-Weitergabe und Initialisierung der Eigenschaften als Beispiel, Zielversion .NET 4.0 festgelegt und es funktioniert. public class Cat { public int TailLength { get; set; } = 4; public Cat Friend { get; set; } public string Mew() {...
Version 6.0 hat eine neue Funktion von nameof, aber ich kann den Zweck nicht verstehen, da nur der Variablenname verwendet und beim Kompilieren in eine Zeichenfolge geändert wird. Ich dachte, es könnte einen Zweck haben <T>, wenn ich nameof(T)es benutze, aber wenn ich es versuche, druckt es...
Ich bin auf einen Code gestoßen, der besagt public int MaxHealth => Memory[Address].IsValid ? Memory[Address].Read<int>(Offs.Life.MaxHp) : 0; Jetzt bin ich mit Lambda-Ausdrücken einigermaßen vertraut. Ich habe es einfach nicht so gesehen. Was wäre der Unterschied zwischen der obigen...
Ich habe die neuesten Funktionen in C # 6.0 durchgearbeitet und bin nur einem Beispiel für den automatischen Eigenschaftsinitialisierer gefolgt. class NewSample { public Guid Id { get; } = Guid.NewGuid(); } aber meine IDE hat die Syntax nicht erkannt. Ich frage mich, wie ich C # 6.0 in Visual...
Hintergrund Wir haben ein Projekt, das wir in VS 2015 mit aktiviertem C # 6 entwickeln und das gelegentlich von Entwicklern geöffnet werden muss, die VS 2013 ohne C # 6 verwenden. Wir haben nicht die Absicht, C # 6 in dieser speziellen Lösung zu verwenden (so oft ich möchte). Problem Visual...
Ich habe festgestellt, dass die Zeichenfolgeninterpolation zwar sehr gut ist, wenn sie auf die Zeichenfolgenformataufrufe meiner vorhandenen Codebasis angewendet wird. Angesichts der allgemein bevorzugten Spaltenbeschränkung wird die Zeichenfolge jedoch schnell zu lang für eine einzelne Zeile....
Ich teste Visual Studio 2015 mit C # 6.0, aber die Sprachfunktionen funktionieren nicht. In einer MVC-Webanwendung wird der folgende Code kompiliert: if (!string.IsNullOrWhiteSpace(Model.Profile?.TypeName)) { // More logic here... } Wenn ich die Anwendung jedoch über Debug und IIS Express ausführe,...
Als Teil der Roslyn- Dokumentation auf GitHub gibt es eine Seite mit dem Namen Implementierungsstatus für Sprachfunktionen mit geplanten Sprachfunktionen für C # und VB. Eine Funktion, um die ich mich nicht kümmern konnte, war der private protectedZugriffsmodifikator: private protected string...
In C # 6 gibt es eine neue Funktion: interpolierte Zeichenfolgen. Mit diesen können Sie Ausdrücke direkt in Code einfügen, anstatt sich auf Indizes zu verlassen: string s = string.Format("Adding \"{0}\" and {1} to foobar.", x, this.Y()); Wird: string s = $"Adding \"{x}\" and {this.Y()} to foobar.";...
Ich habe einen vorhandenen Website- Projekttyp Visual Studio 2015 aktualisiert und das Framework auf 4.6 geändert. Ich habe dann erwartet, dass all diese neuen Funktionen in meinem Code hinter Dateien verfügbar sind. Leider bekomme ich Fehler wie: Fehler CS8026: Die Funktion 'Eigenschaft mit...
Ich schaue mir einige der neuen Funktionen in C # 6 an, insbesondere "Verwenden von Statik" . Die Verwendung von static ist eine neue Art der using-Klausel, mit der Sie statische Elemente von Typen direkt in den Bereich importieren können. (Unten im Blogbeitrag) Die Idee ist wie folgt,...
In C # 6 können Sie den nameof()Operator verwenden, um eine Zeichenfolge abzurufen, die den Namen einer Variablen oder eines Typs enthält. Wird dies zur Kompilierungszeit oder zur Laufzeit über eine Roslyn-API
Ich möchte C # 6 in meinem Projekt verwenden (Null-Weitergabe, andere Funktionen). Ich habe VS 2015 auf meinem PC installiert und es funktioniert hervorragend und erstellt Testcode wie var user = new SingleUserModel(); //all model fields are null var test = user.User?.Avatar?["blah"]; Wenn ich...
Ich verwende häufig einen Null-Propagierungsoperator in meinem Code, weil er mir besser lesbaren Code bietet, insbesondere bei langen Abfragen, bei denen ich nicht jede einzelne verwendete Klasse auf Null prüfen muss. Der folgende Code löst einen Kompilierungsfehler aus, für den in Lambda kein...
Bis heute konnte ich Primärkonstruktoren verwenden, wie zum Beispiel: public class Test(string text) { private string mText = text; } Um dies zu tun, musste ich dies im vorherigen Visual Studio CTP der csproj-Datei hinzufügen: <LangVersion>Experimental</LangVersion> In der Visual Studio...
Ich habe eine automatisierte Eigenschaft erstellt: public int Foo { get; } Dies ist nur Getter. Aber wenn ich einen Konstruktor erstelle, kann ich den Wert ändern: public MyClass(string name) { Foo = 5; } Warum ist es möglich, obwohl dies nur get
Wird das unterstützt? Wenn ja, gibt es einen Trick, um es zu aktivieren? Ich gehe davon aus, dass Razor keinen ausreichend neuen Compiler verwendet ...? Die VS2015-IDE scheint in Ordnung zu sein, aber zur Laufzeit bekomme ich CS1056: Unerwartetes Zeichen '$'
Eine neue Funktion in C # 6.0 ermöglicht das Deklarieren von Variablen innerhalb der TryParse-Methode. Ich habe einen Code: string s = "Hello"; if (int.TryParse(s, out var result)) { } Aber ich erhalte Kompilierungsfehler: Was mache ich falsch? PS: In den Projekteinstellungen sind C # 6.0 und .NET...