Có cách nào để làm điều gì đó tương tự trong C# không?Giống như Ruby 'trừ' đối với C#?
tức là.
i++ unless i > 5;
đây là một ví dụ
weatherText = "Weather is good!" unless isWeatherBad
Có cách nào để làm điều gì đó tương tự trong C# không?Giống như Ruby 'trừ' đối với C#?
tức là.
i++ unless i > 5;
đây là một ví dụ
weatherText = "Weather is good!" unless isWeatherBad
gì về:
if (i<=5) i++;
if (!(i>5)) i++;
sẽ làm việc quá.
Gợi ý: Không có unless
chính xác tương đương.
CHỈNH SỬA: Điều này sai vì Ruby unless
KHÔNG lặp như ý tưởng của tôi. Tôi trả lời quá nhanh.
câu trả lời sai dưới
Các syntactiaclly gần đó với các từ khóa cơ bản và các nhà khai thác sẽ là một cái gì đó giống như
int x = 0;
do
{
x++;
} while (x < 5);
vì vậy ý tưởng sẽ là. [làm điều gì đó] trừ khi [điều kiện] bạn có thể nghĩ rằng nó bị đảo ngược nếu – Konstantinos
[có, nó là đối diện 'if', nhưng nó không phải là một vòng lặp] (http://en.wikibooks.org/ wiki/Ruby_Programming/Syntax/Control_Structures # except_expression) – Reniuz
@Konstantinos: bạn cần xem lại các câu trả lời khác, điều này là sai vì tôi đã hiểu nhầm cú pháp ruby – xan
Có' các ternary ?:
-operator:
i = i > 5 ? i : i + 1
//if i>5 then i, else i++
(Giả sử mã ruby có nghĩa là những gì tôi nghĩ)
OK, nếu 'trừ' là một vòng lặp thì đó là một điều hoàn toàn khác ... Tôi nên đề cập đến rằng tôi không nói ruby. – phg
[không có vòng lặp của nó] (http://www.tutorialspoint.com/ruby/ruby_if_else.htm) – Reniuz
Đây là mã khủng khiếp, và nó cũng không hoạt động chút nào. Mã của bạn không phức tạp. – CodesInChaos
Bạn có thể đạt được một cái gì đó như thế này với các phương pháp mở rộng. Ví dụ:
public static class RubyExt
{
public static void Unless(this Action action, bool condition)
{
if (!condition)
action.Invoke();
}
}
và sau đó sử dụng nó như
int i = 4;
new Action(() => i++).Unless(i < 5);
Console.WriteLine(i); // will produce 4
new Action(() => i++).Unless(i < 1);
Console.WriteLine(i); // will produce 5
var isWeatherBad = false;
var weatherText = "Weather is nice";
new Action(() => weatherText = "Weather is good!").Unless(isWeatherBad);
Console.WriteLine(weatherText);
Cách tiếp cận thú vị – Konstantinos
Tiện ích mở rộng luôn luôn lưu ngày. –
không. Có 'if' và'?: ', Nhưng không hoạt động như thế này. – CodesInChaos
Tôi nghĩ rằng sắp tới với một gia số là một ví dụ xấu, sẽ thêm một ví dụ khác trong trường hợp nó giúp. – Konstantinos