C# (C Sharp) programming
По всем вопросам- @notxxx1 Реестр РКН: https://clck.ru/3Fk3kb #VRHSZ
Показати більше📈 Аналітичний огляд Telegram-каналу C# (C Sharp) programming
Канал C# (C Sharp) programming (@csharp_ci) у мовному сегменті Російська є активним учасником. На даний момент спільнота об'єднує 17 994 підписників, посідаючи 7 238 місце в категорії Технології та додатки та 36 485 місце у регіоні Росія.
📊 Показники аудиторії та динаміка
З моменту свого створення невідомо, проект продемонстрував стрімке зростання, зібравши аудиторію у 17 994 підписників.
За останніми даними від 03 листопада, 2026, канал демонструє стабільну активність. Хоча за останні 30 днів спостерігається зміна кількості учасників на -72, а за останні 24 години на 1, загальне охоплення залишається високим.
- Статус верифікації: Не верифікований
- Рівень залученості (ER): Середній показник залученості аудиторії становить 16.33%. Протягом перших 24 годин після публікації контент зазвичай збирає 7.62% реакцій від загальної кількості підписників.
- Охоплення публікацій: В середньому кожен допис отримує 2 939 переглядів. Протягом першої доби публікація в середньому набирає 1 371 переглядів.
- Реакції та взаємодія: Аудиторія активно підтримує контент: середня кількість реакцій на один пост – 0.
- Тематичні інтереси: Контент зосереджений навколо ключових тем, таких як .net, api, логика, архитектура, string.
📝 Опис та контентна політика
Автор описує ресурс як майданчик для висловлення суб'єктивної думки:
“По всем вопросам- @notxxx1
Реестр РКН: https://clck.ru/3Fk3kb
#VRHSZ”
Завдяки високій частоті оновлень (останні дані отримано 04 листопада, 2026), канал підтримує актуальність та високий рівень охоплення публікацій. Аналітика показує, що аудиторія активно взаємодіє з контентом, що робить його важливою точкою впливу в категорії Технології та додатки.
public 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_ciusing System;
class Program
{
static void Main(string[] args)
{
double num1 = 1.000001;
double num2 = 0.000001;
Console.WriteLine((num1 - num2) == 1.0);
}
}
@csharp_ciusing System;
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine("H" + 'I');
Console.WriteLine('h' + 'i');
}
}using System;
using System.Text;
public class Program
{
public static void Main(string[] args)
{
String str = "";
StringBuilder sb1 = new StringBuilder("TechBeamers");
StringBuilder sb2 = new StringBuilder("TechBeamers");
StringBuilder sb3 = new StringBuilder("Welcome");
StringBuilder sb4 = sb3;
if (sb1.Equals(sb2)) str += "1";
if (sb2.Equals(sb3)) str += "2";
if (sb3.Equals(sb4)) str += "3";
String str1 = "TechBeamers";
String str2 = "Welcome";
String str3 = str2;
if (str1.Equals(str2)) str += "4";
if (str2.Equals(str3)) str += "5";
Console.WriteLine(str);
}
}
Ответclass Solution:
def getHint(self, se: str, gu: str) -> str:
dcse=defaultdict(lambda:0)
dcgu=defaultdict(lambda:0)
a=0
b=0
for i in range(len(se)):
if(se[i]==gu[i]):
a+=1
else:
dcse[se[i]]+=1
dcgu[gu[i]]+=1
for x in dcse:
if(dcgu[x]>=dcse[x]):
b+=dcse[x]
else:
b+=dcgu[x]
return(str(a)+"A"+str(b)+"B")
пишите свое решение в комментариях 👇
@csharp_ciusing System.Threading;
void PrintNumbers()
{
for (int i = 1; i <= 5; i++)
{
Console.WriteLine(i);
}
}
Thread newThread = new Thread(PrintNumbers);
Starting a Thread
Чтобы запустить поток в C#, вы можете использовать метод Start():
newThread.Start();
Joining a Thread
Чтобы дождаться завершения выполнения потока в C#, вы можете использовать метод Join()
newThread.Join();
Thread Sleep
Остановка текущего потока на заданное время,
Thread.Sleep(1000); // Sleep for 1 second
Thread Pools
Чтобы использовать пул потоков в C#, вы можете воспользоваться классом ThreadPool:
using System.Threading;
ThreadPool.QueueUserWorkItem(PrintNumbers);
Tasks
Чтобы создать и запустить задачу в C#, вы можете использовать класс Task:
using System.Threading.Tasks;
Task.Run(PrintNumbers);
Wait
Чтобы дождаться завершения задачи в C#, вы можете использовать метод Wait():
Task task = Task.Run(PrintNumbers);
task.Wait();
Cancelling a Task
Для отмены задачи в C# можно использовать класс CancellationTokenSource:
using System.Threading;
using System.Threading.Tasks;
CancellationTokenSource cts = new CancellationTokenSource();
Task.Run(() => PrintNumbers(cts.Token), cts.Token);
cts.Cancel();
Task Exceptions
Для обработки исключений в задаче можно использовать блок try-catch внутри :
using System.Threading.Tasks;
Task.Run(() =>
{
try
{
// Code that may throw an exception
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
});
@csharp_ci