Python tiene una buena palabra clave desde 2.6 llamada con. ¿Hay algo similar en C#?¿Hay algo como 'with' de Python en C#?
9
A
Respuesta
23
El equivalente es la declaración using
Un ejemplo sería
using (var reader = new StreamReader(path))
{
DoSomethingWith(reader);
}
La restricción es que el tipo de la variable de ámbito por la cláusula utilizando debe implementar IDisposable
y es su Dispose()
método que consigue llamado a salir del bloque de código asociado.
5
C# tiene la declaración using
, como se ha mencionado en otra respuesta y documentado aquí:
Sin embargo, es no es equivalente-with
declaración de Python, en la que no hay analógico del método __enter__
.
En C#:
using (var foo = new Foo()) {
// ...
// foo.Dispose() is called on exiting the block
}
En Python:
with Foo() as foo:
# foo.__enter__() called on entering the block
# ...
# foo.__exit__() called on exiting the block
Más sobre la declaración with
aquí:
Cuestiones relacionadas
- 1. ¿Hay algo así como var_dump de PHP en c/C++?
- 2. ¿Hay algo como "+ =" en SASS?
- 3. ¿Hay alguna manera de hacer algo como esto en C#?
- 4. ¿Hay algo así como find_if en Java?
- 5. ¿Hay algo como instanceOf (clase <?> c) en Java?
- 6. ¿Hay algo así como Codecademy para Java
- 7. ¿Hay algo para Python que sea como readdability.js?
- 8. ¿Hay algo como inotify en Windows?
- 9. ¿Hay algo como NSDictionary en Android?
- 10. ¿Hay algo así como indicadores en Lua?
- 11. ¿Hay algo como malloc/free en java?
- 12. ¿Hay algo como create_view en ActiveRecord (Rails)?
- 13. ¿Python tiene algo así como la palabra clave de C++?
- 14. ¿Hay algo como .NET's T4 para Java?
- 15. ¿Hay algo así como i en rango (longitud) en PHP?
- 16. Algo así como boost :: multi_index para Python
- 17. ¿Hay algo como PPI o Perl :: Critic for C?
- 18. ¿Hay algo así como "global ::" para VB.NET?
- 19. ¿Hay algo así como TimeSpan en el desarrollo de Android?
- 20. ¿Hay algo así como un modelo funcional?
- 21. ¿Hay algo como rubygems.org para bibliotecas scala
- 22. ¿Hay algo así como WMI para Linux?
- 23. ¿Hay algo así como `last` for` map`?
- 24. ¿Hay algo como JRebel para .NET?
- 25. ¿Hay algo así como AutoMapper para Scala?
- 26. ¿Hay algo así como bpython para Ruby?
- 27. ¿Hay algo así como Incanter para Haskell?
- 28. ¿Hay algo como jquery para WPF/XAML?
- 29. ¿Hay algo como/proc para las ventanas
- 30. ¿Hay algo así como un bool nulo en vb.net