C#的排错之旅

简介: 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;
    }
}
相关文章
|
4月前
|
SQL 网络协议 Java
Java开发者的必备技能:抓包工具排查问题
Java开发者的必备技能:抓包工具排查问题
|
前端开发
一次偶然的机会,让我遇见了amis之排错总结(持续更新,因为还在学习)(下)
一次偶然的机会,让我遇见了amis之排错总结(持续更新,因为还在学习)
|
4月前
|
网络协议 容灾 NoSQL
阿里云DTS踩坑经验分享系列|网络问题排查大法
在DTS的所有用户问题中,网络问题出现的概率居高不下,很大程度上是由于DTS的链路复杂性,从源数据库到DTS再从DTS到目的数据库,任意的一个部位发生网络不通、网络质量问题都有可能导致DTS任务的中断,或者延迟。本文希望以一种最简单的模型,简述DTS网络不通问题的排查方法,并给出一些简单的验证思路及手段,排查方向对了才能事半功倍。
108946 3
阿里云DTS踩坑经验分享系列|网络问题排查大法
|
5月前
|
存储 Linux 应用服务中间件
小白带你学习linux服务管理(十五)
小白带你学习linux服务管理(十五)
34 0
|
8月前
|
运维 监控 关系型数据库
Linux运维工程师的注意事项?
Linux运维工程师的注意事项?
|
10月前
|
Java 应用服务中间件 Nacos
Java后端项目排错经验分享
Java后端项目排错经验分享
180 0
|
前端开发
一次偶然的机会,让我遇见了amis之排错总结(持续更新,因为还在学习)(中)
一次偶然的机会,让我遇见了amis之排错总结(持续更新,因为还在学习)
|
运维 Linux Shell
运维工程师面试必须掌握的服务器开机启动过程
加载 BIOS 的硬件信息,跟据设定取得第一个可开机引导设置,如:光驱,硬盘,网络,USB; 如果是硬盘为第一引导。
422 0
运维工程师面试必须掌握的服务器开机启动过程
|
SQL 缓存 Java
排查处理一个不熟悉的项目中的问题
作为一个开发,不见得所有技术都能掌握,但问题往往也不会出现在自己能掌握的知识里,那怎么才能有效率的解决问题呢?接下来分享一下自己面对这种情况时候的表现。
121 0
|
Arthas SQL 监控
重启大法好!线上常见问题排查手册
本文从线上实际问题和故障的排查出发,分享如何快速定位和恢复线上常见问题和故障,总结了很多实操的方法,希望对大家有用。
9977 0
重启大法好!线上常见问题排查手册