intなどの値型を格納するStackの場合、C#ではnull
を格納することはできません。 VBではNothing
を格納しようとすると、Nothing
そのものではなく、0
などその型のデフォルト値が格納されます。
Stackにnullを格納する(値型の場合)
using System;
using System.Collections.Generic;
class Sample {
static void Main()
{
// int(値型)のStack
var s = new Stack<int>();
// nullをPushしようとする
s.Push(null); // error CS1503: 引数 1: は '<null>' から 'int' へ変換することはできません。
// Pushした内容をPeekする
Console.WriteLine(s.Peek());
}
}
値型の値を格納するStackで、値が空であることを表すためにnull
/Nothing
を格納したいといった場合には、ヌル許容型を用いることができます。