2
私が達成しようとしていることを実証するテストコードsnippetを作成しました。しかし、期待通りに機能しません(コードのコメントを参照)。オブジェクトパラメータに渡されたときに、(オブジェクト)nullと(10進数)の間で区別する方法は?
public class Program
{
public static void Main()
{
object obj = null;
decimal? nullDecimal = null;
Test(obj); // Expected: Something else, Actual: Something else
Test(nullDecimal); // Expected: Nullable decimal, Actual: Something else
}
public static void Test(object value)
{
if (value is decimal)
{
Console.WriteLine("Decimal");
return;
}
if (value is decimal?)
{
Console.WriteLine("Nullable decimal");
return;
}
Console.WriteLine("Something else");
}
}
.NETでも可能ですか?
「ヌル」はオブジェクトが存在しないことであり、型も存在しないこともあります。あなたはそこにない何かのタイプをチェックすることはできません。 – poke