我是C#和visual studio 2005的新手 我在VS2005中创建了一个新的控制台应用程序项目,并将一个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”。
任何帮助?
谢谢,Viren
答案 0 :(得分:13)
尝试:
Class1 myClass = new Class1();
myClass.PrintMessage();
或者,可能更好,因为这看起来像一个效用函数。将方法定义更改为:
public static void PrintMessage()
所以你可以直接打电话。
Class1.PrintMessage();
答案 1 :(得分:3)
当前上下文中不存在名称“PrintMessage”。
它存在于另一个上下文中 - 类Class1的上下文。由于它是该(公共)类的公共函数,您可以通过创建Class1的实例(PrintMessage函数不是静态的,因此需要Class1的实例来调用它)然后调用PrintMessage函数来使用它。它
class Program
{
static void Main(string[] args)
{
Class1 someClass1Object = new Class1();
someClass1Object.PrintMessage();
}
}
答案 2 :(得分:2)
PrintMessage不是“程序”类的方法,它是Class1的方法。试试
Class1 c = new Class1();
c.PrintMessage();
您可能还想要完成一两个教程:)
答案 3 :(得分:1)
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();
}
}
答案 4 :(得分:0)
在PrintMessage()
函数内部调用Main
(这是Program
类的函数)意味着编译器将在某处查找名为PrintMessage()
的函数在程序类中。
您拥有的内容在Class1
类中称为实例函数。要调用此类函数,您需要在函数中使用Class1
的实例。像这样:
static void Main(string[] args)
{
Class1 myClass = new Class1();
myClass.PrintMessage();
}
答案 5 :(得分:0)
制作方法static
可能就是你想要的,而不是其他建议:
public static void PrintMessage()
{
Console.WriteLine("\nHello\n");
Console.Read();
}
static
告诉编译器此方法不依赖于类的实例。如果这对您没有任何意义,请阅读您最喜欢的C#书中的课程主题。
答案 6 :(得分:0)
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重命名为更具描述性的内容。
答案 7 :(得分:0)
您需要引用方法所在的类。你必须这样做:
Class1.PrintMessages();
由于Class1不是静态的,因此您还需要该类的实例。你可以这样做:
Class1 c = new Class1();
最后,您必须调用前缀为实例变量的方法。您的代码将如下所示:
Class1 c = new Class1();
c.PrintMessages();
如果需要,可以使用句子缩短此代码
new Class1().PrintMessages();
与以前一样。
答案 8 :(得分:0)
您需要引用Class1类才能调用该类的方法。尝试:
Class1 myClass = new Class1();
myClass.PrintMessage();
答案 9 :(得分:0)
打印消息不是Main的一部分: 你必须告诉它它在哪里:
Class1 messageClass = new Class1();
messageClass.PrintMessage();
答案 10 :(得分:-1)
您需要引用打印消息的类。 。 。 AKA:Class1.PrintMessage()