You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:22:56