Không, không có toán tử nào trong C#. Bạn sẽ phải lặp lại biến hoặc biểu thức để so sánh.
Tôi không biết chính thức lý do tại sao một nhà điều hành như vậy không tồn tại trong C# nhưng đây là một vài suy nghĩ:
- Không có ngôn ngữ khác (mà tôi biết) có một, như vậy nó là có lẽ không phải là tất cả những gì hữu ích
- All features starts with -100 points và cần biện minh tốt lý do tại sao cần tăng cao hơn ngưỡng cần thiết để thực sự triển khai và cũng phải biện minh cho việc đó trước hoặc thay vì các tính năng khác. Vì nó rất dễ dàng để viết các biểu hiện anyway tôi nghi ngờ nó đáp ứng tất cả các tiêu chí này.
Bạn thể (mặc dù tôi không nghĩ rằng đây sẽ là một ý tưởng tốt) tạo ra một phương pháp khuyến nông:
void Main()
{
int foo = 5;
if (foo.Between(1, 10))
Debug.WriteLine("> 1 and < 10");
else
Debug.WriteLine("?");
}
public static class Extensions
{
public static bool Between<T>(this T value, T lowNotIncluded, T highNotIncluded)
where T : struct, IComparable<T>
{
return value.CompareTo(lowNotIncluded) > 0 && value.CompareTo(highNotIncluded) < 0;
}
}
Nhưng sẽ không khuyên. Một câu hỏi cần nêu ra nếu bạn muốn đi tuyến đường phương pháp mở rộng là cách xử lý tất cả các kết hợp của >
, >=
, <
và <=
.
Nguồn
2013-10-16 10:33:00
Không ngôn ngữ nào có nhà điều hành như vậy? 68000 có ** hướng dẫn ** để làm điều đó! ('CHK2'). – MSalters
Và xem những gì đã xảy ra với nó :) Perl có nó, mệnh để trở thành một chú thích lịch sử chỉ là tốt. –
Điều gì về một trình phân tích cú pháp của trình biên dịch và/hoặc phân tích từ vựng? Cú pháp này có đặc biệt khó phân tích cú pháp không? – blt