क्लास का उपयोग किए बिना एक नॉनस्टैटिक कार्य को स्टेटिक विधि में कैसे कॉल करें


हाय दोस्तों,

मुझे आश्चर्य है कि क्या किसी गैर स्थैतिक कार्य को स्थैतिक विधि से कॉल करने का कोई समाधान है, उदाहरण के लिए यह मेरा गैर स्थैतिक कार्य है

सी#
public async Task login(string user, string password)
        {

        }

और यह मेरी स्थिर विधि है

सी#
public static void checker(string email, string password)
       {
           while (true)
           {
               login(email, password);
           }
       }

लेकिन इसे बुलाया नहीं जा सकता और मैं उनके लिए कक्षाओं का उपयोग नहीं करना चाहता।

मैंने क्या प्रयास किया है:

…………………………………………..

समाधान 1

आप इसे स्थैतिक विधि में किसी वैश्विक वस्तु या किसी स्थानीय वस्तु का उपयोग करके कर सकते हैं।

लेकिन जैसा कि मैंने पढ़ा है C# एक इंस्टेंस विधि पर एक थ्रेड भी शुरू कर सकता है। को पढ़िए माइक्रोसॉफ्ट दस्तावेज़ीकरण.

पुनश्च: आपके प्रश्न का उत्तर देकर, मैंने कुछ सीखा 🙂

समाधान 2

नहीं, सीधे तौर पर नहीं.
एक गैर स्थैतिक सदस्य को काम करने के लिए हमेशा एक ऑब्जेक्ट इंस्टेंस की आवश्यकता होती है क्योंकि यह निहित है कि यह इंस्टेंस डेटा को छू सकता है। और यह वस्तु संदर्भ के बिना असंभव होगा।

यह KarstenK द्वारा प्रदान किए गए उदाहरण में काम करता है क्योंकि सदस्य विधि एक प्रतिनिधि में लपेटी गई है।
आप यही कर सकते हैं: प्रतिनिधियों को पास करें।
लेकिन आपको अभी भी उन्हें किसी भी तरह से पारित करना होगा, आप प्रतिनिधि बनाए बिना यादृच्छिक उदाहरण विधि को ‘कॉल’ नहीं कर सकते। जब तक आप किसी वैश्विक वस्तु का उपयोग नहीं करते।

लेकिन ईमानदारी से कहूं तो, इस तरह के मामलों में, आपकी समस्याएं एक संकेत हैं कि आप गलत समस्या को ठीक करने का प्रयास कर रहे हैं। यह शायद एक संकेत है कि आपकी ‘लॉगिन’ विधि एक इंस्टेंस विधि नहीं होनी चाहिए। या यदि वास्तव में इसकी आवश्यकता है, तो आपको उदाहरण का उपयोग करने से बचने का प्रयास नहीं करना चाहिए।

コメント

タイトルとURLをコピーしました