Tôi có một lớp thuộc loại này:Điều gì sẽ xảy ra nếu T vô hiệu trong Generics? Làm thế nào để bỏ dấu ngoặc nhọn
class A<TResult>
{
public TResult foo();
}
Nhưng đôi khi tôi cần phải sử dụng lớp này như là một lớp không chung chung, tức là loại TResult
là void
.
Tôi không thể nhanh chóng lớp theo cách sau:
var a = new A<void>();
Ngoài ra, tôi không muốn chỉ định loại bỏ các dấu ngoặc nhọn:
var a = new A();
Tôi không muốn lại viết cả lớp bởi vì nó cũng giống như vậy.
Bạn không thể chỉ sử dụng 'đối tượng'? – Davio
@ Davio vâng, nhưng thật kinh khủng ... – Nick
Trong trường hợp đó, bạn phải tạo một lớp riêng biệt 'A' không có ràng buộc. Nhưng làm thế nào để thực hiện lớp học trông giống như không có T? bạn có phương thức 'T foo()' trên đó. Điều gì cần T trong trường hợp mất hiệu lực? – nawfal