но они мне кажутся какими-то оторванными от остального кода
логика не очень отделена от внешнего вида, что тоже не очень хорошо
да, можно и такой вариант использовать, но мне он не нравится по причине того, что придется каждый раз из i вычитать единицу чтобы получить индекс массива.
UPD. Всё же вы правы, оно действительно работает без вычета единицы. Спасибо, в будущем пригодится =)
const Table:React.FC<ITable>
const Table:React.FC<ITable<{row1: string; row2: string}, {column1: string; column2: string}>>
в зависимости от того, что Вы хотите получать в пропсы setTimeout(this.scan_scroll(), 1000)
Feature 'nullable reference types' is not available in C# 7.3. Please use language version 8.0 or greater.Ваша версия шарпа не умеет работать с типами вида string? - это подсказка тайпчекеру, что тут может null быть, пусть требует проверки. Если убрать знак вопроса, кардинально ничего не поменяется
async function dd(){
return await ss.call(this)
}
А за return await вообще нужно пальцы отрезать...setTimeout(()=>{
return this.scan_scroll()
}, 1000)
setTimeout не ожидает никакого return от своего колбэка80 //70 высота шапки браузера от начала сайте до самого верха. еще 10 для центровки
Magic constant + мусор в виде коммента... все, пора расстреливатьreturn this.coordX+'|'+this.coordY
}else
OMG...'The stream is currently in use by a previous operation on the stream.'Это означает, что Вы пытаетесь прочитать стрим когда кто-то его уже читает. Этот кто-то - прошлое нажатие кнопки. Стрим нельзя прочитать дважды.
private async void button1_Click(object sender, EventArgs e)
{
button1.Enabled = false; // честно не помню работу с GUI, проверьте как правильно свойство называется
using (var process = Process.Start(psi))
{
bool hasOutput, hasErrors;
do
{
string? output = await process.StandardOutput.ReadLineAsync();
string? errors = await process.StandardError.ReadLineAsync();
hasOutput = !(output is null);
hasErrors = !(errors is null);
if (hasOutput) richTextBox2.AppendText(output);
if (hasErrors) richTextBox2.AppendText(errors);
}
while (hasOutput || hasErrors);
}
}
private async void button1_Click(object sender, EventArgs e)
{
string output = await process.StandardOutput.ReadToEndAsync();
string errors = await process.StandardError.ReadToEndAsync();
richTextBox2.AppendText(errors);
richTextBox2.AppendText(output);
}
То есть вместо:
const result=[];
Написать:
const result = new Array(ls.length + 1);