プログラムは次のように「定数値 267 をバイトに変換できません」と表示されます。
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# の変数と定数が陥りやすいいくつかの基本的な間違いを私がまとめたものです。