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