C#之常量与变量排错

简介: 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#中变量和常量容易出现的一些基本错误。

相关文章
|
7月前
|
存储 安全 数据库连接
C#深度揭秘:常量的魅力和实践,一文让你从新手到专家
C#深度揭秘:常量的魅力和实践,一文让你从新手到专家
56 0
|
7月前
|
C# 开发者
C# 10.0引入常量插值字符串:编译时确定性的新篇章
【1月更文挑战第22天】在C# 10.0中,微软为开发者带来了一项引人注目的新特性——常量插值字符串。这一功能允许在编译时处理和计算字符串插值表达式,从而得到可以在编译时确定的常量字符串。本文将深入探讨C# 10.0中常量插值字符串的概念、工作原理、使用场景及其对现有字符串处理方式的改进,旨在帮助读者更好地理解和应用这一强大的新特性。
|
7月前
|
存储 C# 图形学
【Unity 3D】C#数据类型和变量、命名规范的讲解(附源码)
【Unity 3D】C#数据类型和变量、命名规范的讲解(附源码)
182 1
|
3月前
|
存储 C# 索引
C# 一分钟浅谈:变量与数据类型简介
【9月更文挑战第1天】在 C# 编程中,了解变量与数据类型至关重要。本文详细介绍了 C# 中的值类型(如整数、浮点数、布尔值等)和引用类型(如类、接口、数组、字符串)。通过示例代码展示了变量的声明与使用方法,并针对数据类型转换错误、变量未初始化及数值溢出等常见问题提供了解决方案。正确选择数据类型不仅能提升程序性能,还可避免潜在错误,有助于编写高质量代码。
136 47
|
4月前
|
传感器 开发框架 JSON
聊聊 C# dynamic 类型,并分享一个将 dynamic 类型变量转为其它类型的技巧和实例
聊聊 C# dynamic 类型,并分享一个将 dynamic 类型变量转为其它类型的技巧和实例
206 0
|
6月前
|
开发框架 .NET 编译器
程序与技术分享:C#基础知识梳理系列三:C#类成员:常量、字段、属性
程序与技术分享:C#基础知识梳理系列三:C#类成员:常量、字段、属性
42 2
|
6月前
|
存储 C# 开发者
C# 编程基础:注释、变量、常量、数据类型和自定义类型
C# 编程基础:注释、变量、常量、数据类型和自定义类型
|
6月前
|
存储 Java 编译器
C# 变量与参数详解
C# 变量与参数详解
|
6月前
|
开发框架 .NET 程序员
掌握C#语言的精髓:基础知识与实用技能详解(数据类型与变量+ 条件与循环+函数与模块+LINQ+异常+OOP)
掌握C#语言的精髓:基础知识与实用技能详解(数据类型与变量+ 条件与循环+函数与模块+LINQ+异常+OOP)
34 0
|
程序员 C#
C#基础①——注释、变量、快捷键、Write() 和WriteLine()、ReadKey()和ReadLine()的区别
C#基础①——注释、变量、快捷键、Write() 和WriteLine()、ReadKey()和ReadLine()的区别