2013-10-30 25 views
5

Tôi có một hàm có tham số loại.Làm thế nào để vượt qua một loại đối tượng để nhập tham số trong C#

public static object SetValuesToObject(Type tClass, DataRow dr) 
{ 
    // 
    ............. 
    // 
    return object 
} 

Tôi không biết cách chuyển lớp như tham số cho hàm này. Ở đây tôi muốn vượt qua parmeter Class "Product".

Tôi cố gắng này

SetValuesToObject(Product,datarow); 

Nhưng nó không hoạt động. Làm thế nào tôi có thể làm điều này?

Trả lời

6

typeof keyword khi bạn biết lớp lúc biên dịch.

SetValuesToObject(typeof(Product),datarow); 

Bạn cũng có thể sử dụng object.GetType() trên các trường hợp bạn không biết loại của họ tại thời gian biên dịch.

4

Bạn có một vài lựa chọn:

  1. instance.GetType(): phương pháp này (được định nghĩa trong Object) sẽ trả về kiểu của ví dụ.
  2. typeof(MyClass): sẽ cung cấp cho bạn loại cho lớp học.

Cuối cùng, nếu bạn sở hữu phương pháp này, bạn có thể thay đổi nó để sử dụng Generics, và gọi nó như thế thay vì này

SetValuesToObject<Product>(datarow)

Các vấn đề liên quan