動くコード図鑑技術記事現場の渡り方キャリア論すべての記事About
C#

パターン2: where T : struct —値型のみ許容

出典: C# Generic 制約 (where T : …) — 業務SE が型安全コードを書く5パターンパターン2: where T : struct —値型のみ許容

パターン2: where T : struct —値型のみ許容 (csharp)#1bef6345d897
// ✅ Tは値型のみ(int / DateTime / struct / enum)
public class NullableWrapper<T> where T : struct
{
    private T? _value;  // Nullable<T>として宣言
 
    public void Set(T value)
    {
        _value = value;
    }
 
    public bool HasValue => _value.HasValue;
 
    public T GetValueOrDefault(T defaultValue)
    {
        return _value ?? defaultValue;
    }
}
 
//使い方
var intWrapper = new NullableWrapper<int>();       // OK: intは値型
var dateWrapper = new NullableWrapper<DateTime>(); // OK: DateTimeは値型
// var strWrapper = new NullableWrapper<string>(); // ❌ stringは参照型
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です
  • id: #1bef6345d897
  • lines: 22
  • extracted: 2026-06-10

Source収録記事

この snippet は記事の「パターン2: where T : struct —値型のみ許容」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。

同じ記事から

9
図鑑トップ