C#之常量与变量排错

程序出现”常量值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#中变量和常量容易出现的一些基本错误。

你可能感兴趣的:(c#,开发语言)