2012-01-16 6 views
7

मैं यादृच्छिक फ़ंक्शन का उपयोग करके एक छोटे से सिर या पूंछ प्रोग्राम लिख रहा हूं और टाइप करने के लिए 'System.Random' प्रकार का ऑब्जेक्ट डालने में असमर्थ हूं 'System.IConvertible' संदेश और मुझे यकीन नहीं है क्यों। क्या कोई थोड़ा हल्का छोड़ सकता है। धन्यवाद।'System.Ionvertible' टाइप करने के लिए 'System.Random' प्रकार का ऑब्जेक्ट डालने में असमर्थ

protected void Button1_Click(object sender, EventArgs e) 
{ 
    Random rNum = new Random(); 
    rNum.Next(2, 47); 


    int rrNum = Convert.ToInt32(rNum); 

    string result; 
    result = (rrNum % 2 == 0) ? "Heads" : "Tails"; 
    lblResult.Text = result; 

} 
+1

भविष्य के लिए सलाह का एक टुकड़ा: जब भी आपको सी # में कोई त्रुटि संदेश प्राप्त होता है, तो उस लाइन को जांचें, यह सुनिश्चित करें कि आपके पास सही पैरामीटर प्रकार/चर प्रकार/आदि हैं, आंतरिक अपवादों की जांच करें। –

उत्तर

7

यादृच्छिक रिटर्न एक पूर्णांक पर Next। तो सही कोड है:

Random rNum = new Random(); 
int rrNum = rNum.Next(2, 47); 

तो वहाँ से एक पूर्णांक के लिए rNum कन्वर्ट करने के लिए कोई जरूरत नहीं है।

Random rNum = new Random(); 
int rrNum = rNum.Next(2, 47); 
string result = (rrNum % 2 == 0) ? "Heads" : "Tails"; 
lblResult.Text = result; 
+0

+1 एकमात्र उत्तर जो कोड के संदर्भ में वास्तव में _looked_ था। ऐसा वास्तव में असंभव लगता है कि ओपी वास्तव में प्रकार की यादृच्छिक वस्तु को बदलने का इरादा रखता है;) – Abel

+0

धन्यवाद जो काम करता है। – NewUser101

1

क्योंकि Convert.ToIn32() मांगों को पारित कर दिया वस्तु को लागू करता है IConvertible है यही कारण है कि।

एक यादृच्छिक संख्या को पुनः प्राप्त करने के लिए, आप, Random.Next() विधि कॉल करने के इतने तरह की जरूरत है:

Random rNum = new Random(); 
int YourRandomNumber = rNum.Next(2, 47); 
-2

वास्तव में त्रुटि संदेश राज्यों के रूप में, आप नहीं कर सकते System.Random का एक उदाहरण के लिए इस मामले में एक इंट में परिवर्तित ।

int rrNum = rNum.Next(2,47); 

rNum प्रकार Random की है:

0

आप मूल्य इतना की तरह एक चर के लिए rNum.Next(2,47) से लौटे आवंटित करने के लिए किया है। आप उस प्रकार को int में परिवर्तित नहीं कर सकते हैं।

rNum.Next(2,47)int देता है जो आप चाहते हैं। आप Random.Next के लिए दस्तावेज़ को देखें, तो आपको लगता है कि अपने प्रकार हस्ताक्षर है देखेंगे:

public virtual int Next(int minValue, int maxValue); 

intpublic virtual int में विधि की वापसी प्रकार है। आप इस जानकारी का उपयोग यह निर्धारित करने के लिए कर सकते हैं कि कॉल से लौटाए गए स्टोर को Next पर संग्रहीत करने के लिए आपको किस प्रकार के चर की आवश्यकता है।

संबंधित मुद्दे

 संबंधित मुद्दे