Tôi có một hành vi phương pháp chung mà phụ thuộc vào T là kiểu tham chiếu hoặc loại giá trị. Nó trông giống như vậy:Làm thế nào để xác định xem T là một loại giá trị hoặc lớp tham chiếu trong chung chung?
T SomeGenericMethod <T> (T obj)
{
if (T is class) //What condition I must write in the brackets?
//to do one stuff
else //if T is a value type like struct, int, enum and etc.
//to do another stuff
}
Tôi không thể lặp lại phương pháp này như sau:
T SomeGenericMethod <T> (T obj) where T : class
{
//Do one stuff
}
T SomeGenericMethod <T> (T obj) where T : struct
{
//Do another stuff
}
vì chữ ký của họ đều bình đẳng. Ai giúp tôi với?
Cảm ơn bạn đã giải thích thêm về các loại giá trị không thể thực hiện được. – mkus
Tùy chọn thứ hai là một so sánh có thể có của một loại giá trị với null, đó là một cái gì đó ReSharper thích sủa. Có đường nào quanh đó không? – bubbleking
@bubbleking: Nó phụ thuộc vào những gì bạn đang cố gắng đạt được, thực sự ... –