Tôi muốn tạo một hàm kiểm tra nếu giá trị số được truyền dưới dạng đối số có giá trị lớn hơn không. Một cái gì đó như thế này:Làm thế nào tôi có thể so sánh bất kỳ loại số nào với số không trong C#
public bool IsGreaterThanZero(object value)
{
if(value is int)
{
return ((int)value > 0);
}
else if(value is float)
{
// Similar code for float
}
return false;
}
Tôi có thể cố gắng cast đối tượng thông qua như là đối số của hàm để một kiểu dữ liệu số vì vậy tôi sau đó có thể so sánh nó với zero chứ không phải là kiểm tra đối với từng loại nhập nếu tôi tuyên bố? Nếu dàn diễn viên thất bại, tôi sẽ trả về sai. Có cách nào tốt hơn (đọc ngắn hơn, dễ đọc hơn) để thực hiện việc này không?
Chỉnh sửa: Một số đã hỏi về nếu tôi biết loại sẽ là số, tại sao đối tượng, v.v ... tôi hy vọng điều này sẽ làm cho mọi thứ rõ ràng hơn.
Chức năng này sẽ là một phần của một chuyển đổi Silverlight mà thực hiện giao diện IValueConverter
trong đó có một chữ ký chuyển đổi của
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
A đầu tiên, tôi chỉ muốn chuyển đổi để làm việc với ints nhưng trí tưởng tượng của tôi bắt đầu chạy hoang dã và nghĩ xem nếu tôi có số điểm động và các loại số khác. Tôi muốn làm cho bộ chuyển đổi linh hoạt nhất có thể. Ban đầu tôi nghĩ rằng tất cả những thông tin bổ sung này sẽ cản trở những gì tôi muốn làm vì vậy tôi không đưa nó vào câu hỏi của mình.
Tại sao là một lợi thế này để chỉ sử dụng > toán tử? – Nick
những gì về đúc nó như là một chuỗi so sánh nó với "0" – Luiscencio
@Nick bạn không thể so sánh một int với một đối tượng ... – Langdon