C#中Exercise1方法无法调用问题求助
问题原因与解决办法
嘿,刚接触C#很正常,别着急!你的问题出在静态方法和非静态方法的调用规则上:
你的Main方法是static(静态)的,而Exercise1是普通的实例方法——静态方法属于整个类,不需要创建类的对象就能调用,但实例方法必须依赖类的实例(也就是对象)才能调用,直接在静态方法里调用实例方法肯定会报错。
这里有两种简单的解决办法:
方法一:把Exercise1改成静态方法
只需要给Exercise1加上static关键字,这样它就变成了类的静态方法,和Main一样属于类本身,就能直接在Main里调用了:
public class Program { // 加上static关键字 public static void Exercise1() { Console.Write("Enter a number between 1 to 10: "); var input = Console.ReadLine(); var number = Convert.ToInt32(input); if (number >= 1 && number <= 10) Console.WriteLine("Valid"); else Console.WriteLine("Invalid"); } static void Main(string[] args) { Exercise1(); // 现在可以正常调用了 } }
方法二:在Main里创建Program类的实例再调用
如果你不想把Exercise1改成静态的,那就先new一个Program对象,再通过这个对象调用实例方法:
public class Program { public void Exercise1() { Console.Write("Enter a number between 1 to 10: "); var input = Console.ReadLine(); var number = Convert.ToInt32(input); if (number >= 1 && number <= 10) Console.WriteLine("Valid"); else Console.WriteLine("Invalid"); } static void Main(string[] args) { // 创建Program类的实例 Program programInstance = new Program(); programInstance.Exercise1(); // 通过实例调用方法 } }
两种方法都能解决你的问题,刚学C#的话可以先记住:静态方法调用静态成员,实例方法需要先创建对象~
内容的提问来源于stack exchange,提问作者MadScyan
相关产品推荐
相关产品推荐

