C#
- 16 ответов
- 0 вопросов
16
Вклад в тег
void UntilSuccess(Action action) {
if (action == null)
throw new ArgumentNullException();
while (true) {
try
{
action.Invoke();
break;
}
catch { Thread.Sleep(300); }
}
}
// Использовать так:
UntilSuccess(() => File.WriteAllText(@"C:\\serv1.txt", "text"));
b1_click
нельзя использовать переменную b1
, т.к. она доступна только внутри функции MyButton
.Button b1
внутри класса, например перед public Form1()
. В функции MyButton
удалить Button
, чтобы осталось b1 = new Button();
.b1_click
использовать ссылку на кнопку, на которую нажали. То есть Button b = (Button) sender;
. Это позволит использовать функцию для любой кнопки, а не только для созданной в MyButton
.Button b = (Button) sender;
b.Text = "Зачем нажал?";
// Аналогично циклу с использованием Any
return !Beads.Any(n => Vector3.Distance(n.position, pos) < 0.1f);
// Можно с использованием All
return Beads.All(n => !Vector3.Distance(n.position, pos) < 0.1f);
false
, если условие будет выполнено хотя бы раз. Any
в этом случае вернёт true
. Поэтому нужно применить инверсию. Также можно переписать операцию использую метод All
.