2011-10-17 86 views
7

Làm cách nào để gọi phương thức tĩnh? Tôi muốn gọi nó từ một lớp mà tôi đã tạo, tôi muốn lấy vị trí từ IP. Tôi đã tuyên bố nó nhưng những gì tôi cần làm là gọi phương thức ... như static ...Gọi phương thức tĩnh trong C#

Thành thật mà nói với bạn, tôi khá bối rối ở đây, tôi có cần phải nhanh chóng address, city, v.v. .?

Tôi đã làm điều này cho đến nay;

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

bạn đã thử gì? chỉ cần sử dụng LocationTools.GetLocationFromIP (...); –

Trả lời

4

Có bạn đi

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

Bạn cần phải làm hai việc:

  1. Trước tiên, hãy nhập thư viện nơi lớp tĩnh là: nhập blabla;

  2. Sau đó, gọi phương thức tĩnh của bạn để làm điều gì đó như sau: LocationTools.GetLocationFromIP (địa chỉ, thành phố ...);

Nó sẽ hoạt động.

1

Đó là dễ dàng như:

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

Chỉ cần gọi cho các Class, và thẳng từ đó phương pháp này. Tĩnh có nghĩa là bạn không cần một cá thể của lớp để gọi phương thức.

+0

Chúng là các biến không phải đầu vào. –

+0

Không nhìn thấy chúng ... Điều này là tốt hơn :)? – Hidde

2
LocationTools.GetLocationFromIP(...) ; 

Bạn nên đọc lên về lớp tĩnh và thành viên trên MSDN

lớp tĩnh và các thành viên lớp được sử dụng để tạo ra dữ liệu và chức năng mà có thể được truy cập mà không tạo một thể hiện của lớp. Các thành viên lớp tĩnh có thể được sử dụng để phân tách dữ liệu và hành vi độc lập với bất kỳ nhận dạng đối tượng nào: dữ liệu và chức năng không thay đổi bất kể điều gì xảy ra với đối tượng. Các lớp tĩnh có thể được sử dụng khi không có dữ liệu hoặc hành vi nào trong lớp phụ thuộc vào nhận dạng đối tượng.

5

Các lớp tĩnh thường được sử dụng khi bạn muốn cung cấp một số tiện ích, vì vậy bạn không phải tạo đối tượng của các lớp đó. Bạn có thể gọi những phương thức đó từ các lớp khác bằng cách đơn giản gọi bằng tên lớp và gọi hàm thành viên.

Ví dụ ở đây bạn có thể gọi là LocationTools.GetLocationFromIP();

Hy vọng điều đó sẽ hữu ích!

Các vấn đề liên quan