mjcoder
mjcoder

Reputation: 1011

Calling a Static method in C#

How do I call a static method? I want to call this from a class I have created, I want to get the location from IP. I've declared it but what I need to do is call the method... as static...

To be honest with you, I'm quite confused here, do I need to instantiate address, city, etc.?

I have done this so far;

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

}

Upvotes: 16

Views: 98538

Answers (5)

pan4321
pan4321

Reputation: 891

Static classes are generally used when you want to provide some utilities, so you do not have to create objects of those classes. You can call those methods from other classes by simply calling by class name and invoking the member function.

For example here you can call as LocationTools.GetLocationFromIP();

Hope it helps!

Upvotes: 10

Malachi
Malachi

Reputation: 33700

LocationTools.GetLocationFromIP( ... ) ;

You should read up about Static Classes and Members on MSDN

Static classes and class members are used to create data and functions that can be accessed without creating an instance of the class. Static class members can be used to separate data and behavior that is independent of any object identity: the data and functions do not change regardless of what happens to the object. Static classes can be used when there is no data or behavior in the class that depends on object identity.

Upvotes: 2

Pete Houston
Pete Houston

Reputation: 15079

There you go

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

Upvotes: 5

Hidde
Hidde

Reputation: 11931

It's as easy as:

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

Just call the Class, and straight from that the method. Static means that you do not need an instance of the class to call the method.

Upvotes: 1

Sonhja
Sonhja

Reputation: 8448

You need to do two things:

  1. First, import the library where the static class is: import blabla;

  2. Then, call your static method doing something liked this: LocationTools.GetLocationFromIP(address, city...);

It should work.

Upvotes: 1

Related Questions