C#的排错之旅

开启C#排错之旅

本篇总结了一些初学者容易犯的在错误,希望这些可以帮助到你们解决程序的一些报错问题。

程序出现“当前上下文不存在名称Name”的错误提示。

下面是我的错误演示:

namespace JL
{
    
    
    class Program
    {
    
    
        static void Main(string[] args)
        {
    
    
            string name = "欢迎光临";
            Console.WriteLine(Name);
            Console.ReadLine();
        }
    }
}

解决方案:
首先查看是否有此变量的命名,其次是否和定义的变量名的名称不一样。
正确演示:

namespace JL
{
    
    
    class Program
    {
    
    
        static void Main(string[] args)
        {
    
    
            string name = "欢迎光临";
            Console.WriteLine(name);//此处错误,因为C#是区分大小写的,所以应该将Name修改为name
            Console.ReadLine();
        }
    }
}

程序出现“应输入标识符”的错误提示。

下面是我的错误演示:

namespace JL
{
    
    
    class Program
    {
    
    
        static void Main(string[] args)
        {
    
    
            string long= "欢迎光临";
            Console.WriteLine("变量的值:" + long);
            Console.ReadLine();
        }
    }
}

解决方案:
首先查看代码在给变量命名和赋值的使用有没有违反C#的基本原则:
变量不能命名为关键字,并且赋值的时候要看是否和定义的类型一致。
正确演示:

namespace JL
{
    
    
    class Program
    {
    
    
        static void Main(string[] args)
        {
    
    
            string user= "欢迎光临";//定义一个字符串变量,此处出现错误,变量的名称“long”与C#关键字冲突,应该将long修改其他的变量名,比如user
            Console.WriteLine("变量的值:" + user);//此处错误,应该将int修改为上面代码中修改之后的变量名
            Console.ReadLine();
        }
    }
}

程序出现“无法使用实例引用访问成员Program.i;请改用类型名称对其加以限定”的错误提示。

下面是我的错误演示:

namespace JL
{
    
    
    class Program
    {
    
    
        static int i = 368;//定义一个静态变量,并赋值
        static void Main(string[] args)
        {
    
    
            Program a = new Program();//创建Program类的对象
            Console.WriteLine("静态变量i的值:" + a.i);
            Console.ReadLine();
        }
    }
}

解决方案:
查看代码中的变量是不是静态方法,如果是那么就违反了静态方法不能实例化的规则,只能以类名直接调用。
正确演示:

namespace JL
{
    
    
    class Program
    {
    
    
        static int i = 368;//定义一个静态变量,并赋值
        static void Main(string[] args)
        {
    
    
            Program a = new Program();//创建Program类的对象
            //输出静态变量的值,此处发生错误,静态变量应该使用类名直接调用,所以应该将a修改为Program
            Console.WriteLine("静态变量i的值:" +Program.i);
            Console.ReadLine();
        }
    }
}

程序出现“使用了为赋值的局部变量b”的错误提示。

下面是我的错误演示:

namespace JL
{
    
    
    class Program
    {
    
    
        static void Main(string[] args)
        {
    
    
            string str = "C#编程词典";//定义一个字符串变量,并赋值
            int b;//定义一个int变量
            Console.WriteLine(str + "的价格是" + b);
            Console.ReadLine();
        }
    }
}

解决方法:
查看变量是否有没有赋值的然后直接使用了,要使用赋值的变量。
正确演示:

namespace JL
{
    
    
    class Program
    {
    
    
        static void Main(string[] args)
        {
    
    
            string str = "C#编程词典";//定义一个字符串变量,并赋值
            int b=50;//定义一个int变量
            //输出定义的字符串变量和int变量,此处发生错误,由于b没有赋值,所以不能输出,应该在上面定义b变量时,为其赋一个int整数值
            Console.WriteLine(str + "的价格是" + b);
            Console.ReadLine();
        }
    }
}

程序出现“Test.i不可访问,因为它受保护级别限制”的错误提示。

下面是我的错误演示:

namespace JL
{
    
    
    class Program
    {
    
    
        static void Main(string[] args)
        {
    
    
            Test a = new Test();//创建Test类的对象
            Console.WriteLine("Test类中i变量的值为:" + a.i);
            Console.ReadLine();
        }
    }
    class Test
    {
    
    
        private int i = 368;
    }
}

解决方法:
查看使用的类或者变量的修饰符是什么,如果类没有修饰符,程序默认为private 不能被其他的类引用。
正确演示:

namespace JL
{
    
    
    class Program
    {
    
    
        static void Main(string[] args)
        {
    
    
            Test a = new Test();//创建Test类的对象
            //输出Test类中变量i的值,此处发生错误,因为i为private私有类型,所以此处无法调用
            //可以将声明变量i时的private修饰符修改为public修饰符,应该使该变量能够在其他类中访问
            Console.WriteLine("Test类中i变量的值为:" + a.i);
            Console.ReadLine();
        }
    }
    class Test
    {
    
    
        public int i = 368;
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_63284756/article/details/128271191