Friday 15 June 2012

c# - I can't call public methods from another class -


यह विधियों के साथ वर्ग है

  सार्वजनिक आंशिक वर्ग NewGame: फ़ॉर्म {सार्वजनिक NewGame () {InitializeComponent (); This.Icon = नया चिह्न ("संसाधन / iconG.ico"); comboBoxGenre.Items.AddRange (Enum.GetNames (typeof (Game.Genre))); } सार्वजनिक स्ट्रिंग GetGameName () {वापसी txtbxGameName.Text.Trim (); } सार्वजनिक int GetGenreSelector () {वापसी comboBoxGenre.SelectedIndex; }}   

यह मेरा मुख्य फ़ॉर्म है

  निजी शून्य addGameToolStripMenuItem_Click (ऑब्जेक्ट प्रेषक, EventArgs ई) {newgame = नया NewGame (); newGame.ShowDialog (this); यदि (newGame.DialogResult == DialogResult.OK) {string gameName = newGame.GetGameName (); // यह हिस्सा काम नहीं करता}}   

मुझे एक त्रुटि संदेश मिला:

त्रुटि 1
'System.Windows.Forms.Form 'GetGameName' के लिए कोई परिभाषा नहीं है और कोई भी एक्सटेंशन विधि 'GetGameName' को 'System.Windows.Forms.Form' प्रकार की पहली तर्क स्वीकार नहीं किया जा सकता है (क्या आप उपयोग निर्देश या एक विधानसभा संदर्भ अनुपलब्ध है?)

कुछ हफ़्ते पहले मैंने इसी कोड को लिखा था और यह बिना दोषरहित काम करता था।

बदलें

  फ़ॉर्म newGame = नया NewGame ();   

के साथ

  नयागेम newGame = नया NewGame ();   

आपका newGame चर का प्रकार फ़ॉर्म है, जिसमें उन विधियों को शामिल नहीं किया गया है NewGame वर्ग में उन विधियों को परिभाषित किया है, इसलिए यदि आप सही प्रकार का उपयोग करते हैं, तो वे दृश्यमान हो जाएंगे।

यदि आपको वास्तव में मूल प्रकार का उपयोग करने की आवश्यकता है फ़ॉर्म ) वे अपने ऑब्जेक्ट को NewGame पर डाल सकते हैं:

  form newGame = new NewGame (); स्ट्रिंग गेमनाम = ((नया गेम) newGame) .GetGameName ();    

No comments:

Post a Comment