Por ejemplo, en C# o Java, siempre tiene un método main() utilizado para ejecutar su programa. ¿Cómo nombras la clase en la que se encuentra? Algunas ideas que usaría serían simplemente "Programa" o el nombre del programa en sí. ¿Qué se consideraría convencional en este caso?En un idioma OO, ¿cuál es el nombre de su clase que contiene el método principal?
Respuesta
Visual Studio crea "Program.cs" en estos días, lo que parece bastante razonable. Otro nombre de auto-documentación me gusta es "EntryPoint".
Indico la clase principal después de la aplicación en sí. P.ej. un programa de Calculadora puede tener un "Programa Calculadora" o solo una clase "Calculadora".
Considerando que VS nombra a su clase principal cualquiera que sea el nombre de su aplicación, creo que esto es bastante estándar.
En realidad, lo denomina automáticamente 'Programa' si se trata de una aplicación de consola. – Kev
XApplication, donde X es el nombre descriptivo del programa.
En Objective-C Cocoa, main() es la función C en sí. Envía un mensaje al objeto NSApplication que representa la aplicación en ejecución.
¿Puede explicarnos algo más a nosotros, las personas que no están familiarizadas con Obj-C Cocoa? ¿Estás diciendo que no hay una clase inicial que se use? –
@ d03boy: Bingo. Lo mismo para C++. No todos los lenguajes de OO son tan obsesivos sobre forzar todo en clases de objetos como Java/C# (y C# lo es cada vez menos). – Shog9
Obj-C es un superconjunto de C. Todo lo que está bien en C también está bien en Obj-C, incluyendo la forma en que se usa main(). – mouviciel
Creo que utilice un nombre predeterminado de la lengua sería una buena idea ... otros sabrán que no es el principal()
prefiero ConsoleStub.cs para aplicaciones de consola y Core.cs para otra
Normalmente lo llamo Core también. También doy a mis clases nombres abstractos que no tienen nada que ver con su función real (a menos que sea necesario). – BBetances
Creo que el programa es un caso convencional. En mi caso, de alguna manera me molesta pensar en el nombre que debería darle al espacio de nombres, especialmente si contiene solo una clase. En ausencia de pautas definitivas para nombrar el espacio de nombres con una sola clase, se me ocurre un patrón como este: Stub para clases abstractas, Impl para implementación, Project para el nombre de dll/exe compilado.
ejemplo:
FootwearRemotingStubProject.dll:
namespace FootwearRemotingStubProject
{
public class FootwearRemotingStub
{
...
}
}
FootwearRemotingImplProject.exe:
using FootwearRemotingStubProject;
namespace FootwearRemotingImplProject
{
public class FootwearRemotingImpl: FootwearRemotingStub
{
...
}
}
No estoy seguro de si soy solo yo, pero FootwearRemotingStubProject no me parece muy descriptivo a pesar de que tiene muchas palabras. No estoy seguro por qué. –
De alguna manera estoy de acuerdo, es solo un enfoque interino para mí nombrar a los socios de código Remoting (DLL + EXE [se ejecuta en Mono]). Además, me ayuda a no pensar demasiado cómo nombrar mi clase de manera diferente al espacio de nombres que la contiene. –
me gusta "de arranque"
utilizo ya sea principal o Main
Pero no Main, ¿verdad? –
El programa parece ser el estándar. Que funciona para mí: D
"Iniciador"
VB.NET:
Public Module Main
Public Sub Main(String args())
End Sub
End Module
principal. El paquete donde está colocado dice el resto.
com.finance.calculator.Main
y en los principales Sólo tengo:
public static void main(String [] args) {
FinanceCalculator calc = new FinanceCalculator();
calc.show(); // or start(); or init. or whatever.
}
: SI espero no tener que codificar una calculadora de Finanzas: S: S
creo que eso no funcionaría en C#, ya que un método estático principal en la clase principal sería el constructor estático :) – OregonGhost
@OregonGost. De Verdad? ¿Hay una diferencia entre "principal" y "principal" en C#? Además, ¿qué es un constructor estático? : P – OscarRyz
Siempre he usado FooLauncher, porque me permite encapsular toda la lógica sobre el análisis de línea de comandos en una clase (en lugar de tratar de incluirlo en un método), lo que también permite una mejor capacidad de prueba. También es mejor segregar las preocupaciones: Foo podría ser algo que utilizas fuera de la línea de comandos, pero FooLauncher está ahí para iniciar el procesamiento de línea de comandos de Foo.
Esto es particularmente importante en una aplicación que en general tiene múltiples herramientas de línea de comandos disponibles: cada uno tiene su propio lanzador. Simplemente diciendo Programa tiene poco sentido si su "programa" tiene múltiples herramientas de línea de comandos.
no pongo en una clase. De hecho, ni siquiera uso un método, solo un fragmento de código:
#!/usr/bin/env ruby
puts 'Look Ma, no class, no method!'
Quien votó por esto está equivocado. Ejecute este script de ruby de una sola línea: 'raise 'snafu''. Verá 'foo.rb: 1: in \'
@smotchkiss: En realidad, 'main' es un objeto * *, no un método. Es el objeto global anónimo en el que se ejecuta todo el código que no está dentro de una clase, módulo o método. –
- 1. nombre de la clase que contiene el código de método
- 2. ¿Cómo es que la clase que contiene el método principal no está instanciada y todavía está bien en Java?
- 3. ¿Cómo sabe el tiempo de ejecución qué clase contiene el método principal en la aplicación C#?
- 4. ¿Qué hace que Categoría esté implementando un método que también será implementado por su clase principal?
- 5. ¿Cuál es el método que hace MemberwiseClone()?
- 6. ¿El método principal pertenece a cualquier clase?
- 7. Compruebe el nombre de la clase de la referencia que contiene un objeto en Java
- 8. ¿Cuál es el nombre de este antipatrón?
- 9. ¿Cómo mover el método principal a otra clase en Scala?
- 10. Elemento XPath que contiene un atributo y el elemento primario de su padre contiene otro atributo
- 11. ¿Cuál es la forma más eficaz de registrar el nombre de clase y método?
- 12. __construct() vs método con el mismo nombre que la clase
- 13. ¿Cuál es el método __del__, cómo llamarlo?
- 14. ¿Cuál es el espacio de nombre para la clase DispatcherTimer?
- 15. ¿Es necesario el método Principal en un programa Java?
- 16. Decorar un método que ya es un método de clase?
- 17. Método principal en una clase interna estática.
- 18. ¿Cuál es el significado de $ en un nombre de variable?
- 19. ¿Cuál es el nombre más ridículo que le ha dado a un método?
- 20. ¿Cuál es el mejor idioma para escribir un sistema experto?
- 21. NSUserDefaultsDidChangeNotification: ¿Cuál es el nombre de la clave, que cambió?
- 22. ¿Cuál es el uso principal de MarshalByRefObject?
- 23. Xpath - Obtiene el elemento HTML si su clase contiene texto
- 24. ¿Cuál es el punto de un método estático en una clase no estática?
- 25. clase parcial con el método mismo nombre
- 26. Colección/matriz contiene el método
- 27. ¿Cuál es el principal beneficio de usar HashMap en Java?
- 28. ¿Cuál es su principal solicitud de funciones para Silverlight?
- 29. clase por su nombre
- 30. El programa no contiene un método estático "Principal" adecuado para un punto de entrada
Oooh, me gusta "EntryPoint". El "Programa" me parece ambiguo, aparte de saber que Visual Studio usa el nombre de manera predeterminada. –
me gusta EntryPoint - muy claro –
Sí EntryPoint era lo que siempre se usa en los días antes de Visual Studio empezó a incumplir Programa. Aún así prefiero EntryPoint. –