where

whereÀº Á¦³×¸¯ Çü½Ä Á¦¾à Á¶°ÇÀ» ÁöÁ¤Çϴµ¥ »ç¿ë µÈ´Ù.
Á¶°ÇÀº ´ÙÀ½°ú °°ÀÌ Á¦ÇÑ ÇÑ´Ù.

Where T: Á¦¾àÁ¶°Ç

MyGenericClass¸¦ ÀνºÅϽº·Î ¸¸µé¶§, IComparable¸¦ »ó¼ÓÇÑ Å¬·¡½º¿Í IComparable Ŭ·¡½º¸¸ »ç¿ë ÇÒ¼ö ÀÖ½À´Ï´Ù.  ´Ù¸¥ Ŭ·¡½º¸¦ »ç¿ëÇÏ¸é ºôµå ÇÒ¶§ ¿¡·¯¸¦ ³À´Ï´Ù.

public class MyGenericClass<T> where T:IComparable { }

MyClass¸¦ »ç¿ëÇÒ¶§, Ŭ·¡½º¸¦ »ç¿ëÇÒÁö, ±¸Á¶Ã¼¸¦ »ç¿ëÇÒÁö ÁöÁ¤µµ ÇÒ¼ö ÀÖ½À´Ï´Ù.

class MyClass<T, U>
    where T : class
    where U : struct
{ }

new Á¦¾à Á¶°ÇÀº Á¦³×¸¯ Ŭ·¡½º·Î ÀνºÅϽº¸¦ ¸¸µé¶§  ¸Å°³ º¯¼ö°¡ ¾ø´Â public »ý¼ºÀÚ¸¦ °®µµ·Ï ÁöÁ¤ÇÑ´Ù.

class ItemFactory<T> where T : new()
{
    public T GetNewItem()
    {
        return new T();
    }
}


Âü°í)
https://msdn.microsoft.com/ko-kr/library/bb384067.aspx

C# ÇÁ·Î±×·¡¹Ö °¡À̵å
https://msdn.microsoft.com/ko-kr/library/67ef8sbd.aspx

new Á¦¾à Á¶°Ç
https://msdn.microsoft.com/ko-kr/library/sd2w2ew5.aspx