2011-10-17 24 views
7

Come si chiama un metodo statico? Voglio chiamare questo da una classe che ho creato, voglio ottenere la posizione dall'IP. Ho dichiarato, ma quello che devo fare è chiamare il metodo ... come static ...Come chiamare un metodo statico in C#

Per essere onesto con te, io sono abbastanza confuso qui, ho bisogno di istanziare address, city, ecc .?

Ho fatto questo finora;

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

cosa hai provato? basta usare LocationTools.GetLocationFromIP (...); –

risposta

4

Ci si va

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

Hai bisogno di fare due cose:

  1. Per prima cosa, importa la libreria in cui si trova la classe statica: import blabla;

  2. Quindi, chiamare il metodo statico facendo qualcosa piaciuto: LocationTools.GetLocationFromIP (indirizzo, città ...);

Dovrebbe funzionare.

1

E 'facile come:

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

Basta chiamare la classe, e direttamente dal che il metodo. Statico significa che non è necessaria un'istanza della classe per chiamare il metodo.

+0

Sono fuori variabili non input. –

+0

Non li ho visti ... Questo è meglio :)? – Hidde

2
LocationTools.GetLocationFromIP(...) ; 

Si dovrebbe leggere su classi statiche e dei membri su MSDN

classi statiche e membri della classe sono utilizzati per creare i dati e le funzioni che possono essere accessibili senza creare un'istanza della classe. I membri di una classe statica possono essere utilizzati per separare dati e comportamenti indipendenti da qualsiasi identità di oggetto: i dati e le funzioni non cambiano indipendentemente da ciò che accade all'oggetto. Le classi statiche possono essere utilizzate quando non ci sono dati o comportamenti nella classe che dipende dall'identità dell'oggetto.

5

Le classi statiche vengono generalmente utilizzate quando si desidera fornire alcune utilità, quindi non è necessario creare oggetti di tali classi. Puoi chiamare questi metodi da altre classi semplicemente chiamando il nome della classe e invocando la funzione membro.

Ad esempio, qui è possibile chiamare LocationTools.GetLocationFromIP();

Spero che aiuti!

Problemi correlati