程序出现”常量值267无法转换为byte“如下:
namespace Test01 { class Program { static void Main(string[] args) { float fl = 3.14F; double d = 3.14D; fl = (float)d; int ls = 927;//声明一个int类型的变量ls byte shj = 257;//此处发生错误 Console.WriteLine("ls={0}", ls);//输出int类型变量ls Console.WriteLine("shj={0}", shj);//输出byte类型变量shj Console.ReadLine(); } } }
把常量shj的值改为:0~255
注意:
定义变量的类型时,要清楚类型的取值范围。
程序出现”意外字符‘;’的错误提示“如下:
namespace Test02 { class Program { static void Main(string[] args) { int a=368;//此处发生错误 Console.WriteLine(a.ToString());//输出变量a的值 Console.ReadLine(); } } }
把中文的”;“改为英文的”;“
在C#程序中严格区分中英文符号。
程序出现”不能隐式地将double类型转换为float类型;请使用F后缀创建此类型“的错误提示,代码如下:
namespace Test03 { class Program { static void Main(string[] args) { float f = 15.5;//此处发生错误 Console.WriteLine("float变量值为:" + f); Console.ReadLine(); } } }
应该在15.5后面加f或者F
定义变量类型时要注意它的使用规则,不要去违反规则,不然程序会报错。
程序中出现”不能隐式地将double类型转换为int类型。存在一个显示转换(是否缺少强制转换?)“的错误提示,代码如下:
namespace Test04 { class Program { static void Main(string[] args) { double a = 1987.0112;//声明double类型变量x int b = a;//此处有错误 Console.WriteLine("double变量值:" + a);//输出double变量x Console.WriteLine("int变量值:" + b);//输出整型变量y Console.ReadLine(); } } }
应该改成这样:
int b = (int)a;
添加一个强制转换。
程序出现”未处理InvalidCastException指定的转换无效“的错误提示,代码如下:
namespace Test05 { class Program { static void Main(string[] args) { double a = 208;//声明一个double类型变量db,并初始化为2008 object obj = a;//对db变量执行装箱操作 Console.WriteLine("1、db的值为{0},装箱之后的对象为{1}", db, obj); int b =(int) obj;//拆箱操作,此处有错误 Console.WriteLine("2、obj的值为{0},拆箱之后的对象为{1}", obj, i); Console.ReadLine(); } } }
主要是装箱和拆箱之后的数据类型不一致造成的,可以将int类型换成double类型如下所示:
double b =(double) obj;
程序出现”赋值号左边必须是变量、属性或索引器“的错误提示,代码如下:
namespace Test06 { class Program { const double PI = 3.14;//声明一个常量 static void Main(string[] args) { PI = 3.14926;//此处错误 Console.WriteLine(PI); Console.ReadLine(); } } }
常量的值不可改变,可以去掉这一行代码,也可以将上面声明变量中的const关键字去掉。
程序出现”无法使用实例引用访问成员;请改用类型名称对其加以限定“的错误提示,代码如下:
namespace Test07 { class Program { static void Main(string[] args) { Test test=new Test();//创建类的对象 Console.WriteLine("常量的值:"+test.PI);//输出常量的值,此处发生错误 Console.ReadLine(); } } class Test { public const double PI = 3.14; } }
常量需要直接使用类名进行调用(与静态成员一样),不能使用使用类的对象调用改成如下代码;
namespace Test07 { class Program { static void Main(string[] args) { Console.WriteLine("常量的值:"+ Test.PI);//输出常量的值,此处发生错误,常量需要直接使用类名进行调用(与静态成员一样),不能使用使用类的对象调用 Console.ReadLine(); } } class Test { public const double PI = 3.14; } }
以上是我总结C#中变量和常量容易出现的一些基本错误。