Search
Write a publication
Pull to refresh
0
0
Владимир Тырин @brain_tyrin

Программист C#

Send message

Автор сделал перевод статьи, опубликованной в начале 2022

Ну и полная аналогия с C# от того же MS - если тип реализует IDisposable с единственным методом void Dispose(), то объекты этого типа можно использовать с using var x = smth(). А если реализует IAsyncDisposable с единственным методом ValueTask DisposeAsync(), то можно делать await using var x = smth(). При этом тип может реализовывать оба этих интерфейса, и пользователь может выбирать, что вызвать (через using/await using)
IAsyncDisposable при этом появился гораздо позже, и после его появления в абстрактные классы стандартной библиотеки стали добавлять примерно такие реализации (пример из DbConnection)
public virtual ValueTask DisposeAsync()
{
Dispose();
return ValueTask.CompletedTask;
}

При этом мы сразу можем писать await using var connection, а асинхронным его освобождение станет тогда, когда авторы драйвера БД, которые своё соединение наследуют от DbConnection, реализуют его "по-настоящему"

Ну там же прям следующим предложением говорится "Заметим, что я не слишком забочусь о проверке границ, хотя для ваших целей она, очевидно, понадобится."

Stormgate делает Frost Giant Studios, где работают многие бывшие ключевые разработчики из Blizzard, так что надежда есть :)

Тут сложность удаления по ключу вырастает до линейной :)

Интересный 18 пункт. Понятно, что на уяснение задачи можно тратить больше времени, чем на ввод кода. Но для меня это скорее выливалось в идею, что можно начинать вводить код, пилить прототипы (в том числе когда задача - впилить кусок в монолит), таким образом пробуя идеи. Опять же личное впечатление: "проектирование на бумаге" не дает такого понимания нюансов и возможных проблем, как попытка написать код.

Если автор под задачей имеет ввиду написание целой системы, то конечно да, тут он прав

Только наоборот, Rectangle и isSquare

Ну это способ, требующий студии, на самом деле можно просто
dotnet dev-certs https --trust
www.hanselman.com/blog/DevelopingLocallyWithASPNETCoreUnderHTTPSSSLAndSelfSignedCerts.aspx
Говорят, не работает на линуксе, но там и галку в студии поставить не получится :)

Если в линтере надо делать правило "не использовать фичу X", возможно, с фичей что-то не так :)

> Input: N = 200, D = 9
Ответ
((9 + (9 / 9)) + (9 + (9 / 9))) * ((9 / 9) + (9 / 9))
Примерно можно оценить по статье про GVFS. Статья на хабре
The Windows Git repository includes about 3.5 million files that weigh in at about 300GB when you check them into Git.


Ссылка на тесты на гитхабе побилась (https/ вместо https://)
Когда-то на выступлении на у нас кафедре докладчик говорил «си-плюс-плюс» и «пайтон», на что его поправляли, что либо «си-плас-плас» и «пайтон», либо «си-плюс-плюс» и «питон».

А в целом, какая разница? :)
В ISO/IEC 9899:1990 (который, фактически, и есть нынешний C89) такое требование есть (пункт 6.1.2.5)
Стандарт C99 (пункт 6.2.5.6) говорит, что
For each of the signed integer types, there is a corresponding (but different) unsigned
integer type (designated with the keyword unsigned) that uses the same amount of
storage (including sign information) and has the same alignment requirements.

В стандартах C++ фраза повторена почти дословно (есть пункт про «same amount of
storage»).
Так что это какие-то странные реализации.
Может быть, я чего-то не понимаю, но что такое «микрофреймворк»?
В чем разница со специализированной библиотекой?

Information

Rating
Does not participate
Location
Алматы (Алма-Ата), Алма-Атинская обл., Казахстан
Registered
Activity

Specialization

Backend Developer
Lead
C#
.NET