2011-10-17 74 views
7

如何調用靜態方法?我想從我創建的課程中調用此函數,我想從IP獲取位置。我已經聲明它,但我需要做的是調用的方法......作爲static ......在C中調用靜態方法#

爲了跟你說實話,我很困惑在這裏,我需要實例addresscity等。?

我已經完成了這項工作;

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

你試過了什麼?只需使用LocationTools.GetLocationFromIP(...); –

回答

4

你去那裏

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

你需要做兩件事情:

  1. 首先,導入靜態類所在的庫: import blabla;然後,打電話給你的靜態方法做點什麼: LocationTools.GetLocationFromIP(address,city ...);

它應該工作。

1

這是那麼容易,因爲:

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

只需調用類,並直接從該方法。靜態意味着你不需要類的實例來調用方法。

+0

他們沒有輸入變量。 –

+0

沒有看到他們......這是更好的:)? – Hidde

2
LocationTools.GetLocationFromIP(...) ; 

您應該MSDN

靜態類是靜態類和成員閱讀了和類成員被用於創建可訪問的數據和功能而無需創建類的實例。靜態類成員可用於分離獨立於任何對象標識的數據和行爲:不管對象發生什麼,數據和函數都不會更改。當類中沒有依賴於對象標識的數據或行爲時,可以使用靜態類。

5

當您想要提供一些實用程序時,通常會使用靜態類,因此您不必創建這些類的對象。您可以通過簡單地調用類名稱並調用成員函數來從其他類調用這些方法。

例如,在這裏您可以調用LocationTools.GetLocationFromIP();

希望它有幫助!