В общем, условно, такой код, глядя на который, даже самые суровые критики не могли бы найти к чему придраться.
services.AddScoped(typeof(IFoo<>), typeof(Foo<>));
sqlCommandText = "SELECT * FROM table WHERE id='"+Id+"'"; // Смущает +Id+, так вроде не пишут, нужно @?
using var command = new SqliteCommand
{
CommandText = "SELECT id, txt, floating_point, raw_bytes FROM table WHERE id=$id",
Parameters = {
new SqliteParameter("$id", 123)
},
Connection = new SqliteConnection() // Тут стоит подставить настоящий connection
};
using var reader = await command.ExecuteReaderAsync(); // Вместо async-await можно использовать и синхронные методы
var data = new List<(int id, string text, double floatingPoint, byte[] blob>(); // Вместо кортежа можно нормальный тип
while (await reader.ReadAsync())
{
var id = await reader.GetFieldValueAsync<int>(0); //integer
var text = await reader.GetFieldValueAsync<string>(1); //text
var value = await reader.GetFieldValueAsync<double>(2); // real
var blob = await reader.GetFieldValueAsync<byte[]>(3); // blob
data.Add((id, text, value, blob));
}
Шаблонный
итератор
switch(parameter) {
case IPrintService_IncomeProductLabelParams incomeProductLabel: {
// ...
break;
}
case IPrintService_WLabelParams wLabel: {
// ...
break;
}
// итд
default:
// ...
break;
}
Захватывать картинки - есть либа и это вроде не сложно, но с веб апи я работал с обычными запросами, если я буду отправлять 24 картинки в секунду, даже разрешения 640 на 480 через пост запросы, это, блин, очень много запросов ) там не известно, какие-то кадры могут раньше приехать, какие-то зависнуть по разным причинам.
User user = null!;
var userDto = new AllUserDataDto {
TelegramUserIdDto = user.TelegramUserId,
Steam = user.Accounts.Select(x =>
new Steam {
SteamIdDto = x.SteamId,
Skins = x.Items.Select(i=> new Skin { NameDto = i.MarketHashName }
})
.ToList()
};
Столкнулся я с вопросом "А как узнать, что игрок закрыл игру принудительно, не используя кнопку "Exit"?
Также, было бы весело решить данный вопрос, если вы ответите на похожий вопрос "Как узнать время проведенное в афк?",
Вроде бы IHost интерфейс появился как попытка унификации любого микросервиса и должен облегчать межсервисное взаимодействие и контейнеризацию. Поправьте, если я заблуждаюсь
повторять всегда {
сообщение = прочитать();
если сообщение = "EXIT" то выйти;
сообщение2 = прочитать();
если сообщение2 = "EXIT" то выйти;
количество_повторений = прочитать_число(сообщение2);
повторять количество_повторений раз {
напечатать(сообщение);
}
}
while(true) {
Console.WriteLine("Введите сообщение");
var message = Console.ReadLine();
if (message == "EXIT") {
return;
}
Console.WriteLine("Введите количество повторений");
var message2 = Console.ReadLine();
if (message == "EXIT") {
return;
}
var count = int.Parse(message2); // по хорошему, надо бы как-нибудь обработать, если пользователь ввёл не число. В таком виде программа просто упадёт.
for(var i=0; i<count; i++) {
Console.WriteLine(message);
}
}