01/10/2018, 08:36

Về Generic trong c#

chào mọi người em có một vấn đề trong c# như này giải sử em có một class trong c# như này

class Funtion 
{
     public  T getRamdom<T>(ref T a)
        {
            return a;
        }
}

cách viết này ok ko có vấn đề gì
nhưng nếu em viết là

class Function
{
      public T inra()
        {

        }
}

thì nó sẽ lại báo lỗi ạ.tại sao lại như vậy ạ

*grab popcorn* viết 10:42 ngày 01/10/2018

Bởi vì khi đó compiler sẽ ko hiểu T ở đây là gì.
Muốn làm như cách 2 bạn bỏ nó trong Generic class là được.

Đỗ Trung Quân viết 10:37 ngày 01/10/2018

Nếu class không phải generic thì method generic phải khai báo như này

            access_modifier + return_type + methodName<T>(ref T lhs, ref T rhs)

Ví dụ

            static void Swap<T>(ref T lhs, ref T rhs)
            {
                T temp;
                temp = lhs;
                lhs = rhs;
                rhs = temp;
            }

Muốn viết như cách 2 của em thì class phải define kiểu generic T cho class

 class Function<T>
        {
            public T inra()
            {

            }
        }
Đỗ Nhiên viết 10:38 ngày 01/10/2018

thế giả cử class đó ko phải là class genrice mà em muốn viết một method ko biết sẽ trả về cái gì thì sẽ phải làm sao ạ

Đỗ Trung Quân viết 10:47 ngày 01/10/2018
   T getType<T>(T  t){
       return t
   } 
Bài liên quan
0