using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Generics
{
    // Listing 4-11
    public class Quux<T>
        where T : struct
    {
    }

    // Listing 4-12
    public class Spong<T>
        where T : IEnumerable<T>, IDisposable, new()
    {
    }
    
    class Examples11_13
    {
        // Listing 4-13
        static void PrintDefault<T>()
        {
            Console.WriteLine(default(T));
        }

        public static void UseDefaultValues()
        {
            PrintDefault<string>();
            PrintDefault<int>();
            PrintDefault<bool>();
            PrintDefault<object>();
        }
    }
}
