web-dev-qa-db-ja.com

C#での静的メソッドの呼び出し

静的メソッドを呼び出すにはどうすればよいですか?作成したクラスからこれを呼び出したい、IPから場所を取得したい。私はそれを宣言しましたが、私がする必要があるのはメソッドを呼び出すことです... static...

正直なところ、私はここでかなり混乱しています。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();
        }
    }
}

}

11
MJCoder

ほら

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)
}
6
Pete Houston

静的クラスは通常、いくつかのユーティリティを提供するときに使用されるため、これらのクラスのオブジェクトを作成する必要はありません。クラス名で呼び出してメンバー関数を呼び出すだけで、他のクラスからこれらのメソッドを呼び出すことができます。

たとえば、ここではLocationTools.GetLocationFromIP();として呼び出すことができます。

それが役に立てば幸い!

6
pan4321
LocationTools.GetLocationFromIP( ... ) ;

[〜#〜] msdn [〜#〜] で静的クラスとメンバーについて読む必要があります

静的クラスとクラスメンバーは、クラスのインスタンスを作成せずにアクセスできるデータと関数を作成するために使用されます。静的クラスメンバーを使用すると、オブジェクトIDに依存しないデータと動作を分離できます。データと関数は、オブジェクトに何が発生しても変化しません。静的クラスは、オブジェクトIDに依存するクラスにデータまたは動作がない場合に使用できます。

2
Malachi

次の2つのことを行う必要があります。

  1. まず、静的クラスがあるライブラリをインポートします。

  2. 次に、次のようなことを行う静的メソッドを呼び出します。LocationTools.GetLocationFromIP(address、city ...);

うまくいくはずです。

1
Sonhja

簡単です:

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

クラスを呼び出すだけで、そこから直接メソッドが呼び出されます。静的とは、メソッドを呼び出すためにクラスのインスタンスが必要ないことを意味します。

1
Hidde