Anonymous Quiz
33%
false
11%
true
11%
null
44%
-1
👍1
out).📖 Кортежи изначально появились в C# 4.0 и были представлены типом
System.Tuple.Позднее, в версии C# 7.0 был добавлен новый тип
System.ValueTuple. На данный момент рекомендуется использовать именно его ввиду повышенной производительности. public (string, int) GetFruit()
{
return ("Apple", 5);
}
По умолчанию имена полей кортежа имеют следующий вид:
(string, int) fruit = GetFruit();
//fruit.Item1, fruit.Item2
public (string Name, int Count) GetFruit()
{
return ("Apple", 5);
}
var cort = (bob.Name, bob.Age);
Console.WriteLine(cort.Name);
Метод позволяет получить свойства объекта по-отдельности:
(string name, int number) = GetFruit();
// в результате - 2 отдельные переменные name и number
#tuple
👍 Если и так всё знал,
🔥 Если ты Вий, и тебе подняли веки,
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2🤔1🤯1
main() | c#, patterns & stuff pinned «Hello, world! Привет! На этом канале я буду выкладывать посты об особенностях платформы .NET через призму языка C# — синтаксис, конструкции, концепции и прочее. Разложим по полочкам паттерны проектирования (design patterns). Изучим базу и полезные фишки распределённой…»
Все ключевые слова C#, представляющие названия типов, — это псевдонимы для определённого типа .NET из библиотеки базовых классов BCL.
string — псевдоним типа System.String,
int — псевдоним типа System.Int32.
👍 Если и так всё знал,
🔥 Если ты Вий, и тебе подняли веки,
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3😁3🦄3🤡1
☝️ Такая архитектура позволяет создавать исполняющие среды (CLR) не только для Windows, но и для Linux и macOS — собственно, чего ради всё и затевалось изначально.
#jit, #compile
👍 Если и так всё знал,
🔥 Если ты Вий, и тебе подняли веки,
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
💣 Development vs. Production
Как система ведёт себя при тестировании vs как она ведёт себя у заказчика🤣
#humor
Как система ведёт себя при тестировании vs как она ведёт себя у заказчика
#humor
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4👏1
Какого модификатора доступа не существует в C#?
Anonymous Quiz
33%
private protected
13%
internal protected
53%
private internal
🤷♂2👍1😱1💊1
CTS (Common Type System) расшифровывается как общая система типов — это полное описание всех типов данных и всех программных конструкций, поддерживаемых CLR.
Все фундаментальные типы данных .NET определены в сборке
mscorlib.dllПри этом под типом данных обычно понимается что либо из следующего набора:
⚪️ класс
⚪️ интерфейс
⚪️ структура
⚪️ перечисление
⚪️ делегат
#net_basics
👍 Если и так всё знал,
🔥 Если ты Вий, и тебе подняли веки,
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2👀1
Anonymous Quiz
18%
Proper Twelve
73%
prop
9%
property
0%
Mr. Proper
👍2🔥2
Фиксация зависимостей — указание конкретного семейства пакетов для одной версии .NET без дополнительных спецификаторов, таких как
🔘 бета-версии (beta1)
🔘 релиз-кандидаты (rc4)
🔘 подстановочные символы ( * )
Пример фиксированной зависимости:
<ItemGroup>
<PackageReference
Include="Microsoft.EntityFrameworkCore.Sqlite"
Version="6.0.0" />
</ItemGroup>
Пример нефиксированных зависимостей, которых лучше избегать:
<PackageReference Include="System.NET.Http" Version="4.1.0-*" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.3-beta1" />
#net_basics
👍 Если и так всё знал,
🔥 Если ты Вий, и тебе подняли веки,
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍2🥰1
Anonymous Quiz
29%
readonly
43%
required
14%
retired
14%
что за дичь
🔥1🥰1🤬1
Такое случается с лучшими из нас
👉 Как известно, в .NET есть три наиболее распространённых типа данных для хранения вещественных чисел —
float, double и decimal.Как-то так повелось, что чаще всего в приложениях используется тип
double. Особенно если вы не задумываетесь о количестве оперативной памяти на стороне клиента. ❗️Диапазон типа double просто лютый — от ±5.0 × 10^(−324) до ±1.7 × 10^308. Количество разрядов после десятичного разделителя — не сосчитать.
Но если вы напишете следующий код:
double a = 0.1;
double b = 0.2;
if (a + b == 0.3)
Console.WriteLine("true");
else
Console.WriteLine("false");
то к своему удивлению можете обнаружить, что результат будет
false. ❓ Почему же?
Всё дело в том, как компьютер хранит в памяти числа с плавающей запятой.
Если десятичное число можно однозначно представить в виде двоичного числа (перевести в двоичную систему счисления без потери точности), то проблем со сравнением чисел не будет.
❗️ Но если десятичное число не может быть однозначно представлено в двоичной системе, то и оператор сравнения выдаст некорректный результат.
‼️ Например, число 12.75 будет представлено в двоичной системе как 1100.1100.
А вот число 0.1 должно быть представлено как 0.000(1100), где скобки означают бесконечное повторение этих четырёх чисел. Но поскольку невозможно хранить бесконечное число, оно в какой-то момент обрезается, что и приводит к потере точности.
А потому 0.1 + 0.2 уже не будет в точности равно 0.3.
decimal — ваш бро.Кстати, с использованием оператора равенства при сравнении чисел двойной точности случился очень неприятный казус. Во время войны в Персидском заливе американский противоракетный комплекс Patriot был запрограммирован с использованием чисел двойной точности с плавающей запятой (тех самых
double). Неточность в расчётах привела к тому, что комплекс не смог перехватить иракскую ракету Р-17, и та попала в американские казармы в городе Дхарам.Так что погроммирование — это то ещё искусство.
👍 Если и так всё знал (да ладно, не заливайте, я вот не знал),
🔥 Если ты Вий, и тебе подняли веки,
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2🥰1🦄1
Anonymous Quiz
14%
пересчитывать свойства объекта 🤔
43%
применять синтаксис массива для обращения к свойству объекта 🤔
21%
применять массив синтаксисов для обращения к объекту свойств 😿
21%
да что они себе позволяют! 🤨
👍1🥰1
Различия основных версий среды разработки Visual Studio.
#vs
👍 Если и так всё знал,
🔥 Если ты Вий, и тебе подняли веки,
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1🥰1👀1🦄1😎1
Anonymous Quiz
28%
Roselin 🤔
17%
Gosling 🤣
11%
Josephine 🤣
33%
Roslyn 😂
11%
Rosalyn 😏
🤡2🔥1🥰1🦄1😎1
CLI (Common Language Infrastructure) — спецификация общеязыковой инфраструктуры.
Эта спецификация даёт возможность создавать дистрибутивы платформы .NET для других операционных систем и процессоров.
❗️Дайте мне знать в комментах, когда и, главное, кому эта информация пригодится.
#net_basics
👍 Если и так всё знал,
🔥 Если ты Вий, и тебе подняли веки,
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍1🥰1🦄1😎1
Anonymous Quiz
61%
пространство имён
22%
пространство типОв
0%
пространство пространств
0%
пространство гильберта
17%
автор, отдохни
👍1🥰1👏1
Сборка — двоичный модуль (EXE, DLL), содержащий управляемый код на промежуточном языке и метаданные типов.
Промежуточный язык — он же IL (Intermediate Language).
Он же MSIL - Microsoft IL.
Он же CIL - Common IL.
🔘 Определяются по дружественному имени.
🔘 Могут находится в подкаталогах, тогда их местоположение прописывается в конфиг файле App.config с помощью тегов
assemblyBinging->probing->privatePath.#net_basics
👍 Если и так всё знал,
🔥 Если ты Вий, и тебе подняли веки,
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1🥰1🤔1🦄1
Anonymous Quiz
10%
splitted
65%
partial
10%
segregate
15%
divided
👍1🔥1🥰1👏1🦄1
Если вкратце, всё это — компоненты одной системы.
Их отношение друг к другу можно описать в терминах множеств/подмножеств следующим образом:
CLR
{
CTS
{
CLS
}
}
То есть, CLR содержит CTS, которая содержит CLS.
Ниже — подробнее о каждом из этим компонентов.
— общеязыковая исполняющая среда; набор служб, требующихся для выполнения скомпилированного кода.
CLR отвечает за:
🔘 обнаружение,
🔘 загрузку
🔘 управление объектами .NET.
CLR управляет памятью, потоками, базовыми проверками безопасности.
При обращении к типу CLR выполняет действия:
1️⃣ находит сборку,
2️⃣ находит запрошенный тип в двоичном модуле путём чтения метаданных,
3️⃣ размещает тип в памяти,
4️⃣ компилирует CIL код в машинный код (инструкции CPU),
5️⃣ выполняет проверки безопасности,
6️⃣ выполняет код.
— общая система типов; полное описание всех типов данных и всех программных конструкций, поддерживаемых CLR.
— общеязыковая спецификация; подмножество CTS, в котором описан необходимый минимум, который должны поддерживать все языки программирования (и компиляторы) для .NET.
#net_basics
👍 Если и так всё знал,
🔥 Если ты Вий, и тебе подняли веки,
Please open Telegram to view this post
VIEW IN TELEGRAM
👏2🔥1🥰1