Articles of c # 6.0

Problèmes d’interpolation de chaîne

J’essaie de comprendre pourquoi mon test unitaire échoue (la troisième affirmation ci-dessous): var date = new DateTime(2017, 1, 1, 1, 0, 0); var formatted = “{countdown|” + date.ToSsortingng(“o”) + “}”; //Works Assert.AreEqual(date.ToSsortingng(“o”), $”{date:o}”); //Works Assert.AreEqual(formatted, $”{{countdown|{date.ToSsortingng(“o”)}}}”); //This one fails Assert.AreEqual(formatted, $”{{countdown|{date:o}}}”); Avant, il devrait fonctionner correctement, mais il semble qu’il ne passe pas correctement le […]

Échappement à des citations dans la nouvelle syntaxe de chaîne C # 6

Je suis vraiment enthousiasmé par les nouvelles fonctionnalités de C # 6, y compris la nouvelle syntaxe de chaîne: var fullName = $”My Name is {FirstName} {LastName}”; Cependant, je ne peux pas comprendre comment échapper des guillemets à l’intérieur des accolades pour faire ce qui suit: bool includePrefix = true; var fullName = $”My name […]

Pourquoi l’ordre d’exécution de ‘final’ et external ‘quand’ est-il échangé dans C # 6.0?

J’ai vu cet exemple: static void Main(ssortingng[] args) { Console.WriteLine(“Start”); try { SomeOperation(); } catch (Exception) when (EvaluatesTo()) { Console.WriteLine(“Catch”); } finally { Console.WriteLine(“Outer Finally”); } } private static bool EvaluatesTo() { Console.WriteLine($”EvaluatesTo: {Flag}”); return true; } private static void SomeOperation() { try { Flag = true; throw new Exception(“Boom”); } finally { Flag = […]

Quels sont les avantages des initialiseurs de dictionnaire par rapport aux initialiseurs de collection?

Récemment, on a beaucoup parlé de quoi de neuf dans C # 6.0 L’une des fonctionnalités les plus parlées est l’utilisation d’initialiseurs de Dictionary dans C # 6.0. Mais attendez, nous avons utilisé des initialiseurs de collection pour initialiser les collections et pouvons très bien initialiser un Dictionary également dans .NET 4.0 et .NET 4.5 […]

Quelle est la différence entre les propriétés auto-getter uniquement et les propriétés du corps d’expression?

Dans le C # 6, vous pouvez simplifier l’implémentation d’une propriété en utilisant une propriété automatique de type getter uniquement. Par exemple, si Stream classe abstraite Stream : public override bool CanRead { get; } = true; Cependant, je peux aussi l’écrire avec un corps d’expression, également nouveau en C # 6: public override bool […]

Spécification des parameters régionaux pour l’interpolation de chaînes dans C # 6 (Roslyn CTP6)

L’interpolation de chaînes en C # 6 me permet d’écrire: decimal m = 42.0m; ssortingng x = $”The value is {m}”; Toutefois, un cas d’utilisation très courant du formatage de chaînes consiste à spécifier les parameters régionaux utilisés pour formater les valeurs. Disons que je dois utiliser InvariantCulture pour l’opération de formatage ci-dessus, quelle est […]

Localisation d’interpolation de chaîne C # 6.0

C # 6.0 a une interpolation de chaîne – une fonctionnalité intéressante pour formater des chaînes comme: var name = “John”; WriteLine($”My name is {name}”); L’exemple est converti en var name = “John”; WriteLine(Ssortingng.Format(“My name is {0}”, name)); Du sharepoint vue de la localisation, il est préférable de stocker des chaînes comme: “My name is […]

opérateur conditionnel null ne fonctionne pas avec les types nullables?

J’écris un morceau de code dans c # 6 et pour une raison étrange cela fonctionne var value = objectThatMayBeNull?.property; mais ce n’est pas le cas: int value = nullableInt?.Value; Par pas fonctionné, je veux dire que je reçois une erreur de compilation en disant: Cannot resolve symbol ‘Value’ . Toute idée pourquoi l’opérateur conditionnel […]

Le mot-clé «when» dans un bloc try est-il identique à une instruction if?

Dans C # 6.0, le mot-clé “when” a été introduit, vous pouvez maintenant filtrer une exception dans un bloc catch. Mais n’est-ce pas la même chose qu’une instruction if dans un bloc catch? Si oui, n’est-ce pas simplement du sucre syntaxique ou quelque chose me manque? Par exemple, un bloc try avec le mot clé […]

Essayer de comprendre ?. (null-conditionnel) opérateur en C #

J’ai cet exemple très simple: class Program { class A { public bool B; } static void Main() { System.Collections.ArrayList list = null; if (list?.Count > 0) { System.Console.WriteLine(“Contains elements”); } A a = null; if (a?.B) { System.Console.WriteLine(“Is initialized”); } } } La ligne if (list?.Count > 0) comstack parfaitement, ce qui signifie que […]