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

解決策:
使用されているクラスまたは変数の修飾子を確認してください。クラスに修飾子がない場合、プログラムはデフォルトでプライベートになり、他のクラスから参照できなくなります。
適切なデモ:

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

おすすめ

転載: blog.csdn.net/weixin_63284756/article/details/128271191