Je sais que c # a le mot clé using
, mais using
dispose automatiquement de l'objet.
Y a-t-il l'équivalence de With...End With
In Visual Basic 6. ?
C # n'a pas de construction de langue é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é de langue serait difficile, essentiellement simplement un prétraité.
Edit :
J'étais marre d'attendre cette fonctionnalité, alors voici et une extension qui atteint un comportement similaire.
/// <summary>
/// C# implementation of Visual Basics With statement
/// </summary>
public static void With<T>(this T _object, Action<T> _action)
{
_action(_object);
}
Usage;
LongInstanceOfPersonVariableName.With(x => {
x.AgeIntVar = 21;
x.NameStrVar = "John";
x.NameStrVar += " Smith";
//etc..
});
éditer : intéressant, il semble que quelqu'un me frappe au poinçon, à nouveau, avec cette "solution". Tant pis..
Je pense que l'équivalent des suivants VB :
With SomeObjectExpression()
.SomeProperty = 5
.SomeOtherProperty = "Hello"
End With
Serait ceci 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 de nom "Q", mais il s'agit simplement d'un identifiant par défaut utilisé lorsqu'une période est rencontrée sans aucun autre identifiant avant de celle-ci.
Il n'y a pas d'équivalent avec ... fin avec dans c # .
Voici n tableau de comparaison pour vous qui illustre des différences entre Visual Basic et C #.
Il n'y a pas de structure équivalente en C #. Ceci est une fonctionnalité Visual Basic Basic 6.0/ VB.NET .