C#におけるSQL Serverのisnull関数を実装するその他の方法
C#におけるSQL Serverのisnull関数
null比較演算子
最も簡単な方法は、null比較演算子 (==
と !=
) を使用することです。
string name = null;
if (name == null)
{
Console.WriteLine("Name is null");
}
else
{
Console.WriteLine("Name is not null");
}
この例では、name
変数がNULLかどうかをチェックし、NULLの場合は "Name is null" と出力します。
Nullable型
C# 2.0以降では、Nullable型を使用できます。Nullable型は、値がNULLかどうかを格納できる特別な型です。
string? name = null;
if (name.HasValue)
{
Console.WriteLine("Name is not null and its value is: " + name);
}
else
{
Console.WriteLine("Name is null");
}
この例では、name
変数をNullable型 (string?
) として宣言しています。HasValue
プロパティを使用して、値がNULLかどうかをチェックできます。
Elvis演算子 (?? 演算子)
C# 6.0以降では、Elvis演算子 (??
演算子) を使用できます。
string name = null;
string displayName = name ?? "Unknown";
Console.WriteLine("Display name: " + displayName);
この例では、name
変数がNULLの場合は "Unknown" という文字列を displayName
変数に代入します。
拡張メソッド
独自の拡張メソッドを作成することもできます。
public static class ObjectExtensions
{
public static T IsNull<T>(this T value, T defaultValue) where T : class
{
return value ?? defaultValue;
}
}
string name = null;
string displayName = name.IsNull("Unknown");
Console.WriteLine("Display name: " + displayName);
この例では、Object
クラスに IsNull
という拡張メソッドを追加しています。このメソッドは、値がNULLの場合は指定された代替値を返します。
using System;
class Program
{
static void Main(string[] args)
{
string name = null;
if (name == null)
{
Console.WriteLine("Name is null");
}
else
{
Console.WriteLine("Name is not null");
}
}
}
using System;
class Program
{
static void Main(string[] args)
{
string? name = null;
if (name.HasValue)
{
Console.WriteLine("Name is not null and its value is: " + name);
}
else
{
Console.WriteLine("Name is null");
}
}
}
using System;
class Program
{
static void Main(string[] args)
{
string name = null;
string displayName = name ?? "Unknown";
Console.WriteLine("Display name: " + displayName);
}
}
using System;
public static class ObjectExtensions
{
public static T IsNull<T>(this T value, T defaultValue) where T : class
{
return value ?? defaultValue;
}
}
class Program
{
static void Main(string[] args)
{
string name = null;
string displayName = name.IsNull("Unknown");
Console.WriteLine("Display name: " + displayName);
}
}
三項演算子
string name = null;
string displayName = name != null ? name : "Unknown";
Console.WriteLine("Display name: " + displayName);
String.IsNullOrEmpty() メソッド
string
型の場合は、String.IsNullOrEmpty()
メソッドを使用して、値がNULLまたは空かどうかをチェックできます。
string name = null;
if (string.IsNullOrEmpty(name))
{
Console.WriteLine("Name is null or empty");
}
else
{
Console.WriteLine("Name is not null or empty");
}
DefaultIfEmpty() メソッド
C# 8.0以降では、DefaultIfEmpty()
メソッドを使用して、値がNULLまたは空の場合はデフォルト値を返すことができます。
string name = null;
string displayName = name?.DefaultIfEmpty("Unknown");
Console.WriteLine("Display name: " + displayName);
c# .net sql-server