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 ạ

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.

2 Likes

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()
            {

            }
        }
1 Like

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 ạ

   T getType<T>(T  t){
       return t
   } 

A post was split to a new topic: Nhờ mọi người “tìm” lỗi

A post was removed!

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?