Calling a Static method in C#

2019-04-06 09:25发布

问题:

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

}

回答1:

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


回答2:

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!



回答3:

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.



回答4:

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.



回答5:

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.