Вызов статического метода в C#

как вызвать статический метод? Я хочу вызвать это из класса, который я создал, я хочу получить местоположение из IP. Я объявил об этом, но мне нужно вызвать метод... as static...

честно говоря, я здесь совсем запутался, мне нужно создать экземпляр address, city, etc.?

Я сделал это так далеко;

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)
        {

дома.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();
        }
    }
}

}

5 ответов


поехали

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)
}

статические классы обычно используются, когда вы хотите предоставить некоторые утилиты, поэтому вам не нужно создавать объекты этих классов. Вы можете вызвать эти методы из других классов, просто вызвав по имени класса и вызвав функцию-член.

например, здесь вы можете вызвать как LocationTools.GetLocationFromIP ();

надеюсь, что это помогает!


LocationTools.GetLocationFromIP( ... ) ;

вы должны прочитать о статических классах и членах на MSDN

статические классы и члены класса используются для создания данных и функций, к которым можно получить доступ без создания экземпляра класса. Статические члены класса могут использоваться для разделения данных и поведения, не зависящего от идентификатора объекта: данные и функции не изменяются независимо от того, что происходит с объектом. Статические классы могут использоваться при отсутствии данных или поведение в классе, которое зависит от идентификатора объекта.


вам нужно сделать две вещи:

  1. сначала импортируйте библиотеку, в которой находится статический класс: блабла импорт;

  2. затем вызовите свой статический метод, делая что-то подобное: LocationTools.GetLocationFromIP (адрес, город...);

Это должно сработать.


Это так же просто, как:

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

просто назови класс, и прямо из этого метода. Статический означает, что для вызова метода не требуется экземпляр класса.