C# (C Sharp) programming
По всем вопросам- @notxxx1 Реестр РКН: https://clck.ru/3Fk3kb #VRHSZ
Показати більше📈 Аналітичний огляд Telegram-каналу C# (C Sharp) programming
Канал C# (C Sharp) programming (@csharp_ci) у мовному сегменті Російська є активним учасником. На даний момент спільнота об'єднує 18 307 підписників, посідаючи 7 335 місце в категорії Технології та додатки та 36 870 місце у регіоні Росія.
📊 Показники аудиторії та динаміка
З моменту свого створення невідомо, проект продемонстрував стрімке зростання, зібравши аудиторію у 18 307 підписників.
За останніми даними від 15 червня, 2026, канал демонструє стабільну активність. Хоча за останні 30 днів спостерігається зміна кількості учасників на -14, а за останні 24 години на 0, загальне охоплення залишається високим.
- Статус верифікації: Не верифікований
- Рівень залученості (ER): Середній показник залученості аудиторії становить 19.46%. Протягом перших 24 годин після публікації контент зазвичай збирає 7.27% реакцій від загальної кількості підписників.
- Охоплення публікацій: В середньому кожен допис отримує 3 563 переглядів. Протягом першої доби публікація в середньому набирає 1 331 переглядів.
- Реакції та взаємодія: Аудиторія активно підтримує контент: середня кількість реакцій на один пост – 0.
- Тематичні інтереси: Контент зосереджений навколо ключових тем, таких як .net, api, логика, архитектура, string.
📝 Опис та контентна політика
Автор описує ресурс як майданчик для висловлення суб'єктивної думки:
“По всем вопросам- @notxxx1
Реестр РКН: https://clck.ru/3Fk3kb
#VRHSZ”
Завдяки високій частоті оновлень (останні дані отримано 16 червня, 2026), канал підтримує актуальність та високий рівень охоплення публікацій. Аналітика показує, що аудиторія активно взаємодіє з контентом, що робить його важливою точкою впливу в категорії Технології та додатки.
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
git checkout 1b1ae50e1a69f7c659bd7d731e80b358d21c86ad
.\bootstrap-vcpkg.bat
.\vcpkg.exe install gperf:x64-windows gperf:x86-windows openssl:x64-windows openssl:x86-windows zlib:x64-windows zlib:x86-windows
▪ Далее скачиваем саму библиотеку и собираем её для .NET-проектов:
1. Переходим в папку (в командной строке) /example/csharp, т.е. туда, где будем собирать нашу библиотеку
2. Создаём папку, куда будем собирать библиотеку, и переходим в неё:
mkdir build
cd build
3. Настраиваем сборку библиотеки в зависимости от разрядности системы (x32 или x64); где "...path to vcpkg...", указываем путь до скачанного ранее vcpkg:
Для x32:
cmake -A Win32 -DTD_ENABLE_DOTNET=ON -DCMAKE_TOOLCHAIN_FILE=<path to
vcpkg>/scripts/buildsystems/vcpkg.cmake ../../..
Для x64:
cmake -A x64 -DTD_ENABLE_DOTNET=ON -DCMAKE_TOOLCHAIN_FILE=<path to
vcpkg>/scripts/buildsystems/vcpkg.cmake ../../..
4. Собираем библиотеку в зависимости от требуемой конфигурации (Release или Debug):
Для Release:
cmake --build . --config Release
Для Debug:
cmake --build . --config Debug
Готово! Теперь в папке build/Release или build/Debug (в зависимости от того, что вы выбрали) находится готовый файл Telegram.Td.dll, который и нужно использовать в своем проекте.
Продолжение
@csharp_ciInstall-Package Cledev.OpenAI
Пример с ChatGPT
var request = new CreateChatCompletionRequest
{
Model = ChatModel.Gpt35Turbo.ToStringModel(),
Stream = true,
MaxTokens = 500,
Messages = new List<ChatCompletionMessage>
{
new("system", "You are a helpful assistant."),
new("user", "Who won the world series in 2020?"),
new("assistant", "The Los Angeles Dodgers won the World Series in 2020."),
new("user", "Where was it played?")
}
};
var completions = client.CreateChatCompletionAsStream(request);
await foreach (var completion in completions)
{
Console.Write(completion.Choices[0].Message?.Content);
}
Пример генерации изображений (Dall-E)
var request = new CreateImageRequest
{
Prompt = "Once upon a time",
Size = ImageSize.Size512x512.ToStringSize(),
ResponseFormat = ImageResponseFormat.B64Json.ToStringFormat(),
N = 1
};
var response = await client.CreateImage(Request);
<img src="@response.Data[0].Url" />
@csharp_ciusing System;
class Program
{
static void Main(string[] args)
{
int num = 5;
int square = 0, cube = 0;
Mul (num, ref square, ref cube);
Console.WriteLine(square + " & " +cube);
Console.ReadLine();
}
static void Mul (int num, ref int square, ref int cube)
{
square = num * num;
cube = num * num * num;
}
}
@csharp_cinums = [-2,1,-3,4,-1,2,1,-5,4]
Вывод: 6
Объяснение: 4,-1,2,1] имеет наибольшую сумму 6.
Ввод: nums = [5,4,-1,7,8]
Вывод: 23
Решение:
public class Solution {
public int MaxSubArray(int[] nums) {
int res = nums[0], sum = nums[0], i = 1;
while (i < nums.Length)
{
if (nums[i] > nums[i] + sum) sum = nums[i];
else sum = nums[i] + sum;
if (sum > res) res = sum;
i++;
}
return res;
}
}
Пишите свое решение в комментариях👇
@csharp_cipublic static void FireAndForget(
this Task task,
Action<Exception> errorHandler = null)
{
task.ContinueWith(t =>
{
if (t.IsFaulted && errorHandler != null)
errorHandler(t.Exception);
},
TaskContinuationOptions.OnlyOnFaulted);
}
Использование:
SendEmailAsync().FireAndForget(
e => Console.WriteLine(e.Message));
2. Повтор
Для повторного выполнения задачи мы можем создать метод Retry, который позволит нам установить максимальное количество попыток и задержку между ними. Он будет работать до выполнения задачи или достижения максимальной попытки.
public static async Task<TResult>
Retry<TResult>(
this Func<Task<TResult>> taskFactory,
int maxRetries,
TimeSpan delay)
{
for (int i = 0; i < maxRetries; i++)
{
try
{
return await taskFactory()
.ConfigureAwait(false);
}
catch
{
if (i == maxRetries - 1)
throw;
await Task.Delay(delay)
.ConfigureAwait(false);
}
}
// не должно достигать этого места
return default(TResult);
}
Использование:
var result = await (
() => GetResultAsync())
.Retry(3, TimeSpan.FromSeconds(1));
3. Действие при сбое
Выполняется в случае возникновения ошибок или исключений при выполнении задачи
public static async Task
OnFailure(this Task task,
Action<Exception> onFailure)
{
try
{
await task.ConfigureAwait(false);
}
catch (Exception ex)
{
onFailure(ex);
}
}
Использование:
await GetResultAsync()
.OnFailure(ex => Console.WriteLine(ex.Message));
4. Установка временного ограничения для выполнения задачи можно использовать в тех случаях, когда необходимо предотвратить длительное выполнение данной задачи (особенно, если задача не может быть отменена токеном).
public static async Task
WithTimeout(this Task task,
TimeSpan timeout)
{
var delayTask = Task.Delay(timeout);
var completedTask = await
Task.WhenAny(task, delayTask)
.ConfigureAwait(false);
if (completedTask == delayTask)
throw new TimeoutException();
await task;
}
Использование:
await GetResultAsync()
.WithTimeout(TimeSpan.FromSeconds(1));
5. Возврат
Периодически бывает необходимо возвращать значение по умолчанию в случае неудачного выполнения задачи.
public static async Task<TResult>
Fallback<TResult>(
this Task<TResult> task,
TResult fallbackValue)
{
try
{
return await task.ConfigureAwait(false);
}
catch
{
return fallbackValue;
}
}
Использование:
var result = await GetResultAsync()
.Fallback("fallback");
▪ Статья
@csharp_ci
Вже доступно! Дослідження Telegram за 2025 — головні інсайти року 
