自己紹介
こんにちは。tetraです。
最近C#の学習を始めました。C#歴2ヶ月目の新卒エンジニアです。
error CS0266について
学習課題としてコードを書いていた時にハマったポイントについて
Tipsを書いていこうと思います。
発生例
簡単な例として、以下のようなコードを書きます。
CSwork.cs
// x + y を計算するコード
using System;
public class main
{
public static short calc(short x, short y)
{
return x + y; //error CS0266
}
public static void Main()
{
Console.WriteLine(calc(1, 2));
}
}
この場合、short型で宣言しているにもかかわらず、int型で処理されてしまいます。
解決法
これの処理の仕方を以下のコードで書きます。
CSwork2.cs
// x + y を計算するコード
using System;
public class main
{
public static short calc(short x, short y)
{
return (short)(x + y);
}
public static void Main()
{
Console.WriteLine(calc(1, 2)); //3
}
}
どうでしょうか?変わっていないですか?
よくみてください。
calc関数のところがカッコ()で囲まれshort型として明示的に書かれています。
これをキャストといい、変換できないものを強制的に変換する際使用します。
この場合、大きいものから小さいものに無理やり変換するので、データが損失する恐れがあります。
こうすることによって、short型の戻り値を持つ関数を処理することができるようになります。
いかがでしょうか?
いかがでしょうか。経験が浅いため至らぬところがまだまだあります。
もし間違い等に気がつきましたら、コメント又はtetraまでお知らせください。