Équivalence de “Avec… Fin Avec” en C #?

Je sais que C # a le mot-clé using , mais l’ using dispose automatiquement de l’object.

Existe-t-il une équivalence de With...End With dans Visual Basic 6.0 ?

C # n’a pas de construction de langage équivalente pour cela.

Ce n’est pas équivalent, mais cette syntaxe fonctionnerait-elle pour vous?

 Animal a = new Animal() { SpeciesName = "Lion", IsHairy = true, NumberOfLegs = 4 }; 

Il n’y a pas d’équivalent, mais je pense que discuter d’une syntaxe pourrait être intéressant!

J’aime assez;

 NameSpace.MyObject. { active = true; bgcol = Color.Red; } 

D’autres suggestions?

Je ne peux pas imaginer que l’ajout de cette fonctionnalité linguistique serait difficile, il s’agirait simplement d’un prétraitement.

MODIFIER:

J’en avais marre d’attendre cette fonctionnalité, alors voici une extension qui permet d’obtenir un comportement similaire.

 ///  /// C# implementation of Visual Basics With statement ///  public static void With(this T _object, Action _action) { _action(_object); } 

Usage;

 LongInstanceOfPersonVariableName.With(x => { x.AgeIntVar = 21; x.NameStrVar = "John"; x.NameStrVar += " Smith"; //etc.. }); 

EDIT: Fait intéressant, il semble que l’on m’ait battu au poing avec cette “solution”. Tant pis..

Je pense que l’équivalent du VB suivant:

 With SomeObjectExpression() .SomeProperty = 5 .SomeOtherProperty = "Hello" End With 

Serait-ce est C # :

 { Var q=SomeOtherExpression(); q.SomeProperty = 5; q.SomeOtherProperty = "Hello"; } 

La seule différence réelle est que dans vb, l’identifiant n’a pas un nom “q”, mais est simplement un identifiant par défaut utilisé lorsqu’une période est rencontrée sans autre identifiant auparavant.

Il n’y a pas d’équivalent à With … End With en C # .

Voici un tableau de comparaison qui illustre les différences entre Visual Basic et C #.

Il n’y a pas de structure équivalente en C #. Ceci est une fonctionnalité Visual Basic 6.0 / VB.NET .