Tôi có theo phương pháp (giản thể):Cast trong phương pháp tổng quát để DateTime
private static string GetStringFromValue<T>(T val)
{
if (typeof(T) == typeof(DateTime))
{
return string.Format("{0}", ((DateTime)val).Year.ToString("0000"));
}
return string.Empty;
}
Tại các diễn viên "(DateTime) val" Tôi nhận được lỗi sau:
Cannot cast expression of Type 'T' to type 'DateTime'
gì có thể làm gì để truy cập thuộc tính Năm của tham số DateTime?
CẬP NHẬT: Cảm ơn tất cả các câu trả lời rất nhanh của bạn. Phương thức này (và tên phương thức) thực sự được (!) Đơn giản hóa để hiển thị chính xác vấn đề của tôi và để mọi người chỉ sao chép & dán nó vào studio trực quan của riêng mình. Nó chỉ là tôi muốn thêm một số loại giá trị cụ thể nếu loại là một DateTime. Bên cạnh đó 99% của phương pháp là như nhau.
Tại sao bạn viết 'String, Format (" {0} ", cái gì đó)'? – SLaks
Không chỉ vậy. 'something.ToString()'. – recursive
Năm không phải là giá trị duy nhất tôi muốn nhận được. Nhưng tôi đã đơn giản hóa phương pháp. Hoặc là nó sai mà tôi sử dụng String.Format ở tất cả? Nó có hiệu suất tốt hơn và dễ đọc hơn: x.Year + ":" + x.Month + ":" + ..... – Chris