LoginSignup
0
0

More than 3 years have passed since last update.

【C#】 short型のerror CS0266について

Last updated at Posted at 2020-05-20

自己紹介

こんにちは。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までお知らせください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0