thể trùng lặp:
C# generic constraint for only integersLàm thế nào để tổng hợp các số chung trong C#?
Như bạn có thể thấy trong đoạn mã sau, tôi cần phải tính toán tổng của hai số chung.
public class NumberContainer<T>
{
public T ValueA { get; private set; }
public T ValueB { get; private set; }
public T Total { get { return ValueA + ValueB; } }
}
Tuy nhiên, nó không phải là có thể làm một bổ sung trực tiếp của hai giá trị T, mà kết quả trong các lỗi biên dịch dưới đây: không thể được áp dụng cho toán hạng kiểu
Operator '+' 'T' và 'T'
cho rằng tôi không có ý định sử dụng T cho bất cứ điều gì khác hơn là giá trị các loại đại diện cho số (ngắn, ushort, int, uint, vv), làm thế nào tôi có thể thực hiện tổng? (hiệu quả là yếu tố được xem xét)
Hoặc có thể: [Có C# chung hạn chế cho “số thực” loại?] (http://stackoverflow.com/questions/1348594/is-there-ac-sharp-generic-constraint-for-real-number-types/1348625#1348625) –
Câu hỏi được đóng dưới dạng bản sao câu hỏi tìm cách đặt một ràng buộc vào 'T', đó là * không * câu hỏi này đang cố gắng làm gì. Tôi nghĩ rằng nó nên được mở cửa trở lại. – dasblinkenlight