开启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; } }