Cualquiera puede señalar los pros y los contras del parámetro out. Cuando se prefiere usar el parámetro out en lugar de simplemente devolver un valor.cuáles son los pros y los contras del uso del parámetro
Respuesta
Sugeriría echar un vistazo a los métodos TryParse en los tipos incorporados como int. El valor de retorno es un bool para indicar el éxito, mientras que el valor se devuelve a través de un parámetro de salida. Esta construcción hace que sea útil llamar a este método en una construcción de bucle donde otro tipo de retorno podría/podría complicarlo un poco más.
En una mayor reflexión, una con podría ser una tendencia a seguir agregando parámetros a un método en lugar de encapsular la lógica.
Como usted ha dicho, sin parámetro de salida, sólo se puede devolver un valor, fuera de palabras clave le permiten "retorno" más de un valor
En C# no se puede devolver múltiples variables, por lo que podría hacer el trabajo utilizando el parámetro out, si no quieres pasar por una clase (devuelve una clase con esas variables múltiples).
Los parámetros de salida le permiten devolver valores múltiples desde un método, y esto generalmente es preferible a devolver una estructura o tupla arbitraria que contenga valores múltiples.
Se podría argumentar que es más fácil pasar por alto los posibles efectos secundarios de una función que utiliza un parámetro de salida, ya que se aparta del modelo tradicional de "parámetros múltiples, un valor de retorno". Pero, sinceramente, creo que la palabra clave out junto con una condición posterior al método hace que la intención del programador sea bastante clara.
No estoy seguro de estar de acuerdo con la idea de que, en general, es preferible tener valores de "salida" en lugar de objetos de retorno, pero tal vez es porque no estoy interpretando de forma arbitraria como pretendía. Para mí, una colección de valores devueltos (propiedades con un solo objeto de devolución) generalmente proporciona más flexibilidad que una lista de variables que deben declararse y mantenerse, pero estoy de acuerdo en que hay buenos casos para ambas situaciones. Parecen tener perfecto sentido en los métodos de tipo TryParse, donde, estoy de acuerdo, una estructura "especial" de + bool (¿éxito?) Parece exagerada. – Steven
- 1. Objeto de solicitud, ¿cuáles son los pros y los contras?
- 2. ¿Cuáles son los pros y los contras del uso de d-punteros?
- 3. ¿Cuáles son los pros y los contras de usar Global.asax?
- 4. ¿Cuáles son los pros y los contras de la UCI?
- 5. ¿Cuáles son los pros y los contras de Solr & ElasticSearch?
- 6. ¿Cuáles son los pros y los contras de TreeSet
- 7. ¿Cuáles son los pros y contras del lenguaje de programación Icon?
- 8. ¿Cuáles son los pros/contras de 64 bit .NET?
- 9. ¿Cuáles son los pros y los contras de los submódulos de git y Repo?
- 10. Cuándo usar actores en libgdx? ¿Cuáles son los contras y los pros?
- 11. ¿Cuáles son los pros y los contras para usar un contenedor de IOC?
- 12. ¿Cuáles son los pros y los contras de los procedimientos de llamada en VB.NET?
- 13. ¿Cuáles son los pros y los contras de la autentificación HTTP básica
- 14. ¿Cuáles son los pros y los contras de la eliminación y las actualizaciones en cascada?
- 15. ¿Cuáles son los pros y los contras de asset_packager y Jammit?
- 16. ¿ARC o no a ARC? ¿Cuáles son los pros y los contras?
- 17. ¿Cuáles son los pros y los contras de usar una enumeración de banderas?
- 18. ¿Cuáles son los pros y los contras de usar un correo electrónico como nombre de usuario?
- 19. ¿Cuáles son los pros y los contras de un sitio 100% HTTPS?
- 20. ¿Cuáles son los pros y los contras de almacenar archivos en una base de datos?
- 21. ¿Cuáles son los pros y los contras de ejecutar un trabajo en Hadoop usando varios idiomas?
- 22. ¿Cuáles son los pros y los contras de usar git-svn?
- 23. long vs Guid for the Id (Entity), cuáles son los pros y los contras
- 24. ¿Cuáles son los pros y los contras de adoptar HTML 5 ahora para rediseñar un sitio?
- 25. ¿Cuáles son los pros y los contras al elegir jquery como mi biblioteca principal de JavaScript?
- 26. ¿Cuáles son los pros y los contras de las revisiones de diseño/código?
- 27. ¿Cuáles son los pros y los contras de las diversas implementaciones de Python?
- 28. ¿Cuáles son los pros y los contras de usar Castle Active Record vs Straight NHibernate?
- 29. ¿Cuáles son los pros y los contras de LinkedHashMaps vs. LinkedHashSets?
- 30. ¿Cuáles son los pros y los contras de dejar que Google aloje jQuery para mí?
¿desea saber por qué el retorno booleano es bueno en el ciclo? ¿Puedes dar un ejemplo? – user496949
@ user496949 - con los métodos TryParse, puede manejar una falla al analizar de forma bastante simple al observar el retorno del método. Eso le ahorra intentar manejar la excepción de análisis o buscar algo que indique que el valor resultante es de alguna manera inválido. Considere un booleano como probablemente el ejemplo más simple. Aparte de una excepción, ¿cómo sabría uno que el valor resultante era "inválido"? Con tryParse, el método en sí mismo indica éxito, y el valor resultante se analizó correctamente a un nuevo valor o permanece como estaba antes de llamar al método. – Steven
Creo que te encuentras con el mayor inconveniente. Por lo que puedo decir, todos los param. requiere el mantenimiento de otra variable por el objeto que invoca el método. No es "un gran problema" eliminar un par de variables adicionales en el camino, pero sí tiene un gran potencial para volverse innecesariamente engorroso, cuando el método puede fácilmente (y probablemente más propiamente) encapsular toda esa información en su valor devuelto – Steven