2011-10-17 10 views
7

में एक स्टेटिक विधि को कॉल करना मैं एक स्थिर विधि कैसे कॉल करूं? मैं इसे एक वर्ग से कॉल करना चाहता हूं, मैं आईपी से स्थान प्राप्त करना चाहता हूं। मैं इसे घोषित किया है, लेकिन मैं क्या करने की जरूरत है विधि कॉल ... static के रूप में है ...सी #

आप के साथ ईमानदारी से कहूं तो मैं यहाँ काफी उलझन में हूँ, मैं का दृष्टांत को address, city, आदि की जरूरत है ।?

मैंने अभी तक यह किया है;

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

आपने क्या प्रयास किया? बस LocationTools.GetLocationFromIP (...) का उपयोग करें; –

उत्तर

4

ये लीजिए

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

आप दो काम करने होंगे:

  1. सबसे पहले, लाइब्रेरी आयात करें जहां स्थिर वर्ग है: आयात blabla;

  2. फिर, अपनी स्थिर विधि को कुछ पसंद करने के लिए कॉल करें: स्थान Tools.GetLocationFromIP (पता, शहर ...);

यह काम करना चाहिए।

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

बस कक्षा कहते हैं, और सीधे उस विधि से:

1

यह जितना आसान है। स्टेटिक का मतलब है कि आपको विधि को कॉल करने के लिए कक्षा के उदाहरण की आवश्यकता नहीं है।

+0

वे इनपुट नहीं हैं चर इनपुट। –

+0

उन्हें नहीं देखा ... यह बेहतर है :)? – Hidde

2
LocationTools.GetLocationFromIP(...) ; 

आप MSDN

स्टेटिक वर्गों पर स्टेटिक वर्ग और सदस्यों के बारे में पढ़ना चाहिए और वर्ग के सदस्यों डेटा और कार्यों कि पहुँचा जा सकता है बनाने के लिए उपयोग किया जाता है कक्षा का एक उदाहरण बनाये बिना। स्टेटिक क्लास के सदस्यों का उपयोग किसी भी ऑब्जेक्ट पहचान से स्वतंत्र डेटा और व्यवहार को अलग करने के लिए किया जा सकता है: ऑब्जेक्ट के साथ क्या होता है, इस पर ध्यान दिए बिना डेटा और फ़ंक्शंस नहीं बदलते हैं। स्टेटिक कक्षाओं का उपयोग तब किया जा सकता है जब कक्षा में कोई डेटा या व्यवहार न हो जो ऑब्जेक्ट पहचान पर निर्भर करता हो।

5

स्टैटिक कक्षाएं आमतौर पर उपयोग की जाती हैं जब आप कुछ उपयोगिताएं प्रदान करना चाहते हैं, इसलिए आपको उन वर्गों की वस्तुओं को बनाने की आवश्यकता नहीं है। आप क्लास नाम से कॉल करके और सदस्य फ़ंक्शन का आह्वान करके उन विधियों को अन्य कक्षाओं से कॉल कर सकते हैं।

उदाहरण के लिए आप LocationTools.GetLocationFromIP() के रूप में कॉल कर सकते हैं;

उम्मीद है कि यह मदद करता है!