[英]C # beginner. Compiler errors
我是C#和Visual Studio 2005的新手,我在VS2005中創建了一個新的Console Application項目,並將Class1.cs文件添加到默認情況下創建的現有Program.cs文件中。
Class1.cs文件具有以下簡單代碼:
public class Class1
{
public Class1()
{
}
~Class1()
{
}
public void PrintMessage()
{
Console.WriteLine("\nHello\n");
Console.Read();
}
}
並且program.cs文件具有以下內容:
class Program
{
static void Main(string[] args)
{
PrintMessage();
}
}
當我嘗試編譯時,出現以下錯誤:
名稱“ PrintMessage”在當前上下文中不存在。
有什么幫助嗎?
謝謝,維倫
嘗試:
Class1 myClass = new Class1();
myClass.PrintMessage();
或者,可能會更好,因為這看起來像是一個實用函數。 將您的方法定義更改為:
public static void PrintMessage()
因此,您可以直接調用它。
Class1.PrintMessage();
名稱“ PrintMessage”在當前上下文中不存在。
它存在於另一個上下文中-類Class1。 由於它是該(公共)類的公共函數,因此可以通過創建Class1的實例(PrintMessage函數不是靜態的,因此需要Class1的實例來調用它)來使用它,然后在它。
class Program
{
static void Main(string[] args)
{
Class1 someClass1Object = new Class1();
someClass1Object.PrintMessage();
}
}
PrintMessage不是類“ Program”的方法,而是Class1的方法。 嘗試
Class1 c = new Class1();
c.PrintMessage();
您可能還想閱讀一兩個教程:)
class Program
{
static void Main(string[] args)
{
new Class1().PrintMessage();
}
}
或將PrintMessage()
設置為static
以便可以以其他方式使用它:
public class Class1
{
public static void PrintMessage()
{
// ..
}
}
class Program
{
static void Main(string[] args)
{
Class1.PrintMessage();
}
}
在Main
函數( Program
類中的函數PrintMessage()
內部調用PrintMessage()
意味着編譯器將在程序類中的某個位置查找名為PrintMessage()
的函數。
您所擁有的稱為Class1
類上的實例函數 。 為了調用這種類型的函數,您需要在函數中具有Class1
的實例。 像這樣:
static void Main(string[] args)
{
Class1 myClass = new Class1();
myClass.PrintMessage();
}
使方法static
可能是您想要的,而不是這里的其他建議:
public static void PrintMessage()
{
Console.WriteLine("\nHello\n");
Console.Read();
}
static
告訴編譯器此方法不依賴於類的實例 。 如果這對您沒有任何意義,請閱讀您喜歡的C#書中的類主題。
您的PrintMessage()方法是Class1類的方法。 您必須引用該類才能使用該方法。
class Program
{
static void Main(string[] args)
{
Class1 c = new Class1(); //Create an instance of your class
c.PrintMessage(); //Call the PrintMessage method of class Class1
}
}
注意:您可能希望將Class1重命名為更具描述性的名稱。
您需要引用該方法所在的類。 您必須執行以下操作:
Class1.PrintMessages();
由於Class1不是靜態的,因此您還需要該類的實例。 您可以使用以下方法做到這一點:
Class1 c = new Class1();
最后,您必須調用以實例變量為前綴的方法。 您的代碼將如下所示:
Class1 c = new Class1();
c.PrintMessages();
如果需要,可以使用以下語句來縮短此代碼
new Class1().PrintMessages();
和以前一樣
您需要對Class1類的引用才能調用該類的方法。 嘗試:
Class1 myClass = new Class1();
myClass.PrintMessage();
打印消息不是Main的一部分:您必須告訴它它在哪里:
Class1 messageClass = new Class1();
messageClass.PrintMessage();
您需要引用打印消息的類。 。 。 又稱:Class1.PrintMessage()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.