Tôi đã có hai lớp:Thiết kế khuôn mẫu cho phép chức năng để chấp nhận các loại generic
public abstract class Uniform<T>
public class UniformMatrix4 : Uniform<Matrix4>
(Cho đến nay .... sẽ có nhiều mà thực hiện các loại khác nhau)
Và bây giờ cho phép nói Tôi muốn viết một chức năng mà sẽ chấp nhận bất kỳ đối tượng thống nhất ... nhưng tôi không thể làm điều đó bởi vì không có lớp được gọi là Uniform
, chỉ có chung Uniform<T>
. Vậy cách tiếp cận tốt nhất để giải quyết vấn đề này là gì?
- Hãy
Uniform<T>
thực hiệnIUniform
- Hãy
Uniform<T>
mở rộngUniform
- Làm cho tất cả các chức năng của tôi mà chấp nhận một Uniform để được chung chung quá để họ có thể tham gia một
Uniform<T>
trực tiếp?
phiên bản nào của C# bạn đang sử dụng? Bạn đã xem xét loại động? –
Khi không có lớp được gọi là Đồng phục, làm thế nào có thể tồn tại một đối tượng Đồng phục? –
Nếu không biết gì về mục đích của lớp học, hoặc là chữ ký phương thức trừu tượng, thật khó để đưa ra câu trả lời đúng ở đây. # 3 có vẻ như câu trả lời rõ ràng mặc dù. –