https://t.me/alumnibmstu/549
StepOne - твой первый шаг к успеху в программировании! Если ты хочешь развиваться в сфере IT, узнавать все секреты этой индустрии, получать карьерные советы и увеличивать свой доход, то этот канал создан специально для тебя. Ведущий канала - Степан Минин, который готов поделиться своим опытом и знаниями с тобой. Подписывайся на StepOne, чтобы не упустить ни одного важного момента в своем профессиональном росте. Кроме того, канал предлагает возможность размещения рекламы, для этого обращайтесь к @Lexa_tg. Не забудьте также заглянуть на YouTube канал StepOne по ссылке https://www.youtube.com/@steponeit и на платформу для поддержки канала - Boosty https://boosty.to/steponeit. Присоединяйся к StepOne и сделай свой первый шаг к успеху в IT!
25 Jan, 12:00
ConcurrentDictionary
ConcurrentDictionary<String, SemaphoreSlim>
GetOrAdd
не атомарный метод, и делегат фабрики значения может быть вызван несколько разLazy
, поскольку настоящий объект будет создан и останется единственным в момент запроса значения из ленивого контейнера22 Jan, 18:06
21 Jan, 12:22
19 Jan, 14:27
17 Jan, 05:25
12 Jan, 14:17
10 Jan, 12:33
05 Jan, 06:35
04 Jan, 06:45
01 Jan, 12:36
01 Jan, 12:36
29 Dec, 07:45
26 Dec, 09:12
System.CommandLine
, который до сих пор не в релизе DragonFruit
, который типизирует Main
параметрами опций24 Dec, 05:15
SearchValues
Span
добавили новую структуру данных для ускорения поиска вхождения символов в строку:var vowelSearch = SearchValues.Create(new[] { 'a', 'e', 'i', 'o', 'u' });
var containsVowel = "text".AsSpan().ContainsAny(vowelSearch);
IndexOfAny
:var nameSearch = SearchValues.Create(new[] { "Alice", "Bob", "Charlie", "Diana" }, StringComparison.OrdinalIgnoreCase);
var text = ...
var contains = text.ContainsAny(names);
SearchValues
, если вам нужно фильтровать и анализировать вхождение данных 23 Dec, 20:33
22 Dec, 08:05
18 Dec, 09:15
17 Dec, 09:06
System.Text.Json
просто потому, что в 7-й версии сделали прорыв с полиморфизмом, а в 8-й с интеграцией Source GeneratorsJsonSerializer.Serialize(MyEnum.Value1 | MyEnum.Value2); // "Value1, Custom enum value"
[Flags, JsonConverter(typeof(JsonStringEnumConverter))]
enum MyEnum
{
Value1 = 1,
[JsonStringEnumMemberName("Custom enum value")]
Value2 = 2,
}
JsonElement left = JsonDocument.Parse("10e-3").RootElement;
JsonElement right = JsonDocument.Parse("0.001").RootElement;
JsonElement.DeepEquals(left, right); // True
JsonSerializerOptions options = new() { AllowOutOfOrderMetadataProperties = true };
JsonSerializer.Deserialize<Base>("""{"Name":"Name","$type":"derived"}""", options); // Success
13 Dec, 09:05
Guid
полезен для БД, как тип первичного ключа, поскольку гарантирует сильную уникальность своим разнообразием значенийGuid.NewGuid()
семантически равносильно Random.NextInt64()
var guid = Guid.CreateVersion7();
var guidWithTimestamp = Guid.CreateVersion7(DateTimeOffset.UtcNow);
02 Dec, 08:57
30 Nov, 07:10
21 Nov, 09:00
20 Nov, 09:46
17 Nov, 09:31
16 Nov, 05:31
14 Nov, 09:22
Translate
вида:Translate(100m).Should().Be("Сто рублей ноль копеек");
using Nut;
Console.WriteLine(100m.ToText("rub", "ru", new Options { MainUnitFirstCharUpper = true });
// Сто рублей ноль копеек
12 Nov, 06:42
11 Nov, 08:47
04 Nov, 08:32
GetBytes
по соображениям производительности и требованиям к функционалу замокировать БД не получаетсяbuffer
02 Nov, 10:02
31 Oct, 20:02
22 Oct, 07:50
<Project>
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>
</Project>
18 Oct, 07:32
15 Oct, 07:17
var mockDbConnection = new MockDbConnection();
mockDbConnection.Mocks
.When(cmd => cmd.CommandText.Contains("count(*) from t1"))
.ReturnsTable(
MockTable.WithColumns("Count")
.AddRow(1));
mockDbConnection.Mocks
.When(cmd => cmd.CommandText.Contains("count(*) from t2"))
.ReturnsTable(
MockTable.WithColumns("Count")
.AddRow(2));
09 Oct, 09:05
07 Oct, 13:11
05 Oct, 10:20
04 Oct, 06:20
int[] arr = [];
Console.WriteLine(
arr.All(x => x % 2 != 0));
03 Oct, 12:03
27 Sep, 05:52
24 Sep, 05:19
json
зависимостей, надо было переходить на сурс ген, о чём расскажу в следующем постеScrutor
и System.CommandLine
23 Sep, 07:51