public No18_AlwaysDefineMinimumConstraint()
        {
            //目的:
            //①実行時の検証ではなくコンパイル時に検証可能

            //概要:
            //--------------------------------------------------------------------------------------
            //ジェネリクスに型引数として渡り得る型に制約を設けることで、コンパイル時にエラーを発見する
            //ただし、制約をかけすぎると使いにくいメソッドとなるため、最小限に止める

            //利用時
            Constraint.AreEqual(1, 1);
            Constraint.AreEqual2(1, 1);
            Constraint.AreEqual3(1, 1);
            Constraint.AreEqual4(1, 1);

            IEnumerable <int> a = new List <int>()
            {
                1, 2, 3
            };

            a.FirstOrDefault(v => v == 1);

            Constraint.Factory <MyClass>(() => { return(new MyClass()); });
        }