CLR: .Net / Mono / Boo / Otros CLR > C#

 Duda con NAMESPACE

(1/2) > >>

todotnet:
Hola buenas,
estoy creando una clase para usarla en diferentes aplicaciones.

El fichero .cs tiene esta forma

--- Código: ---using System;

namespace Psharp
{
   public class Psharp
   {
       public static void tconect(String cv, String av)
       {
           ...
       }
       ...+código del programa
   }
}
--- Fin del código ---

Bien, mi pregunta es esta, cuando genero el dll y lo agrego como referencia en otro proyecto, para poder llamar al método tconect
hago lo siguiente

--- Código: ---using Psharp;

namespace WebApplication1
{
    public partial class _Default : System.Web.UI.Page   
    {
              protected void Page_Load(object sender, EventArgs e)
              {
                    Psharp.Psharp.tconect("a","b");
--- Fin del código ---

 No entiendo porque tengo que poner el primer Psharp, no se supone que al incluirlo con el using ya debería acceder directamente a la clase?
Yo lo que quiero es poner sólo Psharp.tconect("a","b");

Las dos maneras que se me han ocurrido han sido agregando dentro del namespace WebApplication1 el using Psharp, pero esta manera no me gusta.
Y la otra es quitarle a la clase el namespace Psharp y dejar sólo la clase. Pero esto no se si es del todo correto.

¿Qué me aconsejais?¿De qué otra manera puedo realizarlo?


Un saludo y gracias por la ayuda.






gabio2:
Primero limpia tú solución (clic derecho sobre tú solución, Limpiar Solución) y luego Regeneras la solución.

Yo te recomendaria crear un objeto de tú clase PSharp


--- Código: C# ---   Psharp _psharp = new Psharp();    protected void Page_Load(object sender, EventArgs e)              {                    _psharp.tconect("a","b"); 
Saludos! :)

caperutxa:
Pero si creas el objeto, ¿no te estás alejando del objetivo de usar tus propias librerías y API's?

gabio2:
Estás creando un objeto de tú clase, cuando trabajas con clases (programación por capas o similares), siempre es mejor crear un objeto de las clases que vayas a usar, lo mismo sucede con los WebService, etc... no veo en que sentido me alejo del objetivo.. o mejor dicho, para tí ¿cuál es el objetivo de usar  tus propias librerias?..

todotnet:
Antes de nada, agradeceros la ayuda.

El caso es que no quiero que se instancie la clase, solamente usar ese método.
Pero estoy trabajando con Visual Studio 2008, y al crear una Clase, me crea un código por defecto, y me agrega unos using y namespace por defecto.


--- Código: ---using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace PSharp
{
    public class Class1
    {
    }
}
--- Fin del código ---

y mi pregunta es si puedo quitar ese namespace aunque esta clase vaya a usarla en otros proyectos. Ya que me surgió la duda, cuando agregué la referencia en otro proyecto. Y al poner using PSharp;
En el código para llamar al método tconect tenía que poner:


--- Código: --- Psharp.Psharp.tconect("a","b");
--- Fin del código ---

Y yo lo que quiero es llamar al método tconect sin tener que poner el primer PSharp

--- Código: ---Psharp.tconect("a","b");
--- Fin del código ---

PD:

--- Citar ---Primero limpia tú solución (clic derecho sobre tú solución, Limpiar Solución) y luego Regeneras la solución.

Yo te recomendaria crear un objeto de tú clase PSharp

--- Fin de la cita ---

Lo hice pero al volver a  añadir el using PSharp, sucede lo mismo. El problema es el namespace, ¿este se pondría sólo si tengo varias clases dentro del mismo proyecto no?

al poner en el código PSharp ( primero me pone el namespace ) . PSharp ( la clase ) . tconect ( método).

Un Saludo y  :gracias:

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa