2011-10-17 26 views
7

¿Cómo llamo a un método estático? Quiero llamar a esto desde una clase que he creado, quiero obtener la ubicación de IP. He declarado, pero lo que hay que hacer es llamar al método ... ... como staticLlamar a un método estático en C#

para ser honesto con ustedes, estoy bastante confundido aquí, ¿necesito para crear una instancia address, city, etc. .?

He hecho esto hasta el momento;

LocationTools.cs

public static class LocationTools 
    { 
     public static void GetLocationFromIP(string address, out string city, out string region, out string country, out double? latitude, out double? longitude) 
     { 

Home.cs

public string IPAPIKey 
    { 
     get 
     { 
      return WebConfigurationManager.AppSettings["IPAPIKey"]; 
     } 
    } 

    ////To get the ip address of the machine and not the proxy use the following code 
    static void GetLocationFromIP() 
    { 
     string strIPAddress = Request.UserHostAddress.ToString(); 
     strIPAddress = Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; 

     if (strIPAddress == null || strIPAddress == "") 
     { 
      strIPAddress = Request.ServerVariables["REMOTE_ADDR"].ToString(); 
     } 
    } 
} 

}

+2

¿qué has probado? solo use LocationTools.GetLocationFromIP (...); –

Respuesta

4

Hay que ir

static void GetLocationFromIP() 
{ 
    string strIPAddress = Request.UserHostAddress.ToString(); 
    strIPAddress = Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; 

    if (strIPAddress == null || strIPAddress == "") 
    { 
     strIPAddress = Request.ServerVariables["REMOTE_ADDR"].ToString(); 
    } 

    string city = string.Empty; 
    string region = string.Empty; 
    string country = string.Empty; 
    double latitude = -1.00; 
    double longitude = -1.00; 

    LocationTools.GetLocationFromIP(strIPAddress, out city, out region, out country, out latitude, out longitude) 
} 
1

Es necesario hacer dos cosas:

  1. Primero, importe la biblioteca donde está la clase estática: import blabla;

  2. Luego, llame a su método estático haciendo algo así: LocationTools.GetLocationFromIP (address, city ...);

Debería funcionar.

1

Es tan fácil como:

LocationTools.GetLocationFromIP(strIP, strCity, strRegion, strCountry, fLat, fLong) 

Sólo llamar a la clase, y directamente de que el método. Estático significa que no necesita una instancia de la clase para llamar al método.

+0

Son variables no entradas. –

+0

No los vi ... Esto es mejor :)? – Hidde

2
LocationTools.GetLocationFromIP(...) ; 

Usted debe leer acerca de clases estáticas y Miembros de MSDN

clases estáticas y miembros de la clase se utilizan para crear los datos y funciones que se puede acceder sin crear una instancia de la clase. Los miembros de clase estática se pueden utilizar para separar datos y comportamientos que son independientes de cualquier identidad de objeto: los datos y las funciones no cambian independientemente de lo que le ocurra al objeto. Las clases estáticas se pueden usar cuando no hay datos o comportamientos en la clase que dependen de la identidad del objeto.

5

Las clases estáticas generalmente se usan cuando desea proporcionar algunas utilidades, por lo que no tiene que crear objetos de esas clases. Puede llamar a esos métodos desde otras clases simplemente llamando por nombre de clase e invocando la función de miembro.

Por ejemplo, aquí puede llamar como LocationTools.GetLocationFromIP();

Espero que ayude!

Cuestiones relacionadas