C# (C Sharp) programming
По всем вопросам- @notxxx1 Реестр РКН: https://clck.ru/3Fk3kb #VRHSZ
Show more📈 Analytical overview of Telegram channel C# (C Sharp) programming
Channel C# (C Sharp) programming (@csharp_ci) in the Russian language segment is an active participant. Currently, the community unites 18 307 subscribers, ranking 7 335 in the Technologies & Applications category and 36 870 in the Russia region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 18 307 subscribers.
According to the latest data from 15 June, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -14 over the last 30 days and by 0 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 19.46%. Within the first 24 hours after publication, content typically collects 7.27% reactions from the total number of subscribers.
- Post reach: On average, each post receives 3 563 views. Within the first day, a publication typically gains 1 331 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 0.
- Thematic interests: Content is focused on key topics such as .net, api, логика, архитектура, string.
📝 Description and content policy
The author describes the resource as a platform for expressing subjective opinions:
“По всем вопросам- @notxxx1
Реестр РКН: https://clck.ru/3Fk3kb
#VRHSZ”
Thanks to the high frequency of updates (latest data received on 16 June, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.
Нативная интеграция. Информация о продукте www.otus.ru
using System;
using System.Collections.Generic;
using System.Linq;
namespace ModularityAndReusabilityExample
{
class Program
{
static void Main(string[] args)
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
int sum = numbers.Sum();
int product = numbers.Product();
Console.WriteLine("Sum: " + sum);
Console.WriteLine("Product: " + product);
}
}
public static class Extensions
{
public static int Product(this IEnumerable<int> source)
{
return source.Aggregate(1, (acc, x) => acc * x);
}
}
}
В этом примере мы создали список чисел и использовали два метода расширения для вычисления суммы и произведения этих чисел. Метод Sum — это встроенный метод, предоставляемый C#, а метод Product — это пользовательский метод расширения, который мы определили сами.
Инкапсулировав логику вычисления произведения списка чисел в отдельный метод, мы создали высокомодульный и многократно используемый фрагмент кода. Этот метод расширения можно повторно использовать в различных приложениях и при необходимости легко модифицировать или расширять.
Кроме того, использование методов расширения позволяет писать более выразительный и читабельный код. Вместо того чтобы писать цикл для вычисления произведения чисел, мы можем просто вызвать метод расширения Product для списка чисел. Это делает код более простым, лаконичным и удобным для чтения.
В целом преимущества функционального программирования, связанные с модульностью и возможностью повторного использования, позволяют создавать хорошо поддерживаемый и масштабируемый код. Разбивая сложные задачи на более мелкие, независимые функции, мы можем создать библиотеку композитных функций, которые можно повторно использовать в различных приложениях.
Используя возможности C# и функционального программирования, разработчики могут создавать надежные и масштабируемые программные системы, рассчитанные на длительную эксплуатацию.
📌 Читать дальше
@csharp_ciB obj1 = new B();
A obj2 = new B();
obj1.Foo(123);
obj1.Foo("123");
obj2.Foo(123);
obj2.Foo("123");
Console.ReadKey();
class A
{
public void Foo(dynamic arg)
{
Console.WriteLine("dynamic");
}
public void Foo(string arg)
{
Console.WriteLine("string");
}
}
class B : A
{
public void Foo(int arg)
{
Console.WriteLine("int");
}
public void Foo(object arg)
{
Console.WriteLine("object");
}
}
Пишите ответ в комментариях👇
@csharp_ci
class Test
{
public Blob BlobData
{
get
{
return new Blob();
}
}
}
Проверка на null
Самый простой вариант, доступный с первых версий языка, — это создание неинициализированной переменной и проверка её на null перед возвращением. Если переменная равна null, создаём объект и присваиваем этой переменной, а потом его возвращаем. При повторном обращении объект уже будет создан и мы сразу его вернём.
class Test
{
private Blob _blob = null;
public Blob BlobData
{
get
{
if (_blob == null)
{
_blob = new Blob();
}
return _blob;
}
}
}
Объект типа Blob тут создаётся при первом обращении к свойству. Либо не создаётся, если он по какой-то причине в этой сессии программе не понадобился.
Тернарный оператор ?:
В C# есть тернарный оператор, позволяющий проверить условие и, если оно истинно вернуть одно значение, а если ложно, — другое. Мы можем использовать его для того, чтобы немного сократить и упростить код.
class Test
{
private Blob _blob = null;
public Blob BlobData
{
get
{
return _blob == null
? _blob = new Blob()
: _blob;
}
}
}
Суть осталась той же. Если объект не инициализирован, инициализируем и возвращаем. Ежели уже инициализирован, то просто сразу возвращаем.
is null
Ситуации бывают разные и мы, например, можем столкнуться с такой, в которой у класса Blob перегружен оператор ==. Для этого, вероятно, нам может потребоваться сделать проверку is null вместо == null. Доступно в свежих версиях языка.
return _blob is null
? _blob = new Blob()
: _blob;
Но это так, небольшое отступление.
Null-coalescing оператор ??
Ещё больше упростить код нам поможет бинарный оператор ??
Суть его работы такова. Если первый операнд не равен null, то он и возвращается. Если же первый операнд равен null, возвращается второй.
class Test
{
private Blob _blob = null;
public Blob BlobData
{
get
{
return _blob ?? (_blob = new Blob());
}
}
}
Второй операнд пришлось взять в круглые скобки из-за приоритета операций.
📌Статья
@csharp_ci
Available now! Telegram Research 2025 — the year's key insights 
