Trong C# Tôi đang cố gắng viết mã, nơi tôi sẽ tạo ra một đại biểu Func đó là trong chính nó chung chung. Ví dụ như sau (không Generic) đại biểu được trả lại một chuỗi tùy ý:C# Generic Generics (Một câu hỏi nghiêm túc)
Func<string> getString =() => "Hello!";
tôi, mặt khác muốn tạo một generic có vai trò tương tự như phương pháp chung. Ví dụ nếu tôi muốn có một Func tổng quát để trở lại mặc định (T) cho một loại T. Tôi tưởng tượng rằng tôi viết code như sau:
Func<T><T> getDefaultObject = <T>() => default(T);
Sau đó, tôi sẽ sử dụng nó như
getDefaultObject<string>()
đó sẽ quay trở lại null và nếu tôi viết getDefaultObject<int>()
sẽ trả về 0.
Câu hỏi này không chỉ đơn thuần là một bài tập học thuật. Tôi đã tìm thấy rất nhiều nơi mà tôi có thể đã sử dụng điều này nhưng tôi không thể có được cú pháp đúng. Điều này có thể không? Có thư viện nào cung cấp loại chức năng này không?
Có một số lý do mà 'Func CreateGetDefaultObject () {return() => mặc định (T); } 'sẽ không hoạt động? –
Tôi thấy bây giờ. Bạn muốn chuyển một đối số kiểu biên dịch cho một đại biểu. –