Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9297

null許容型で躓いた

$
0
0

背景

例の鬼教官の課題は続いている。
C#の課題プログラムの中でnull許容型について触れることがあったので
備忘録として残す。

課題

消費税(10%)商品と軽減税率対象商品の値段の出力プログラム

躓き

なんでmainの軽減税率計算はnull許容型(★1)でコンパイル通るのに
Book2クラスはnull許容型(★2)で書くと怒られるの~~~?(´;ω;`)

プログラム抜粋

class Program
{
    static void Main(string[] args)
    {
        //軽減税率商品の表示
        if(book0.軽減税率.HasValue)
        {
            double? x = book2.price * book2.軽減税率; //★1
            Console.WriteLine(x);
        }
        else
        {
            Console.WriteLine(book2.price);
        }
    }
}
class Book2
{
    public double 軽減税率get()
    {
        if(軽減税率.HasValue)
        {
            double x = _price * 軽減税率.Value; //★2 double? xにするとエラー
            return x ;
        }
        else
        {
            return _price * 消費税;
        }
    }
}

解答

★2はreturnを使っている。
つまり、doubleで返さないといけないからdoubleに指定しなければならない。
(基礎って大事ですね。。。)
ちなみにこの例だと、if文で値があれば、軽減税率を算出するようにしているので
★1は★2と同じ書き方にする。

まとめ

初心者なので基礎を定着させなきゃ~~


Viewing all articles
Browse latest Browse all 9297

Trending Articles