Pergunta

Esta questão já tem uma resposta aqui:

Eu sei que C # tem a palavra-chave using, mas dispõe using do objeto automaticamente.

Existe a equivalência de With...End With em Visual Basic 6.0 ?

Foi útil?

Solução

C # não tem um construtor de linguagem equivalente para isso.

Outras dicas

Não é equivalente, mas que este trabalho sintaxe para você?

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

Não há equivalente, mas acho que discutir uma sintaxe pode ser interessante!

Eu gosto muito;

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

Qualquer outra sugestão?

Eu não posso imaginar que a adição deste recurso de linguagem seria difícil, essencialmente apenas um pré-processado.

EDIT:

Eu estava cansado de esperar por esse recurso, então aqui está e extensão que atinge um comportamento semelhante.

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

Uso;

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

EDIT: Curiosamente parece que alguém me bater para o soco, mais uma vez, com esta "solução". Oh bem ..

Eu acho que o equivalente da seguinte VB :

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

Seria este é C # :

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

A única diferença real é que em vb, o identificador não tem um nome de "q", mas é simplesmente um padrão identificador usado quando um período é encontrado sem qualquer outro identificador antes.

Não há equivalente à With ... End With no C # .

Aqui está um gráfico de comparação para você que ilustra as diferenças entre Visual Basic e C #.

Não existe uma estrutura equivalente em C #. Esta é a / VB.NET recurso Visual Basic 6.0.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top