HA можно точно так-же заставить из домашней сети в интернет торчать, если есть белый IP вообще здорово) В крайнем случае можно подключаться в сеть по VPN-подобным схемам
Так в этом и плюс, разве нет?) Можно распаковать несколько файлов из одного архива, в какой то момент даже может быть сюжетный поворот которого не было в оригинальном фильме (вероятность этого бесконечно мала, но не 0)
Анонимный тип как аргумент функции это когда вот так:
private static void Some(<>f__AnonymousType0<int> argument)
{
//Содержимое не принципиально
}
Такое нельзя сделать в C#, хотя-бы потому что нельзя использовать <> в названии типа.
По вашей логике и dynamic особо не нужен, можно и так
static void Main(string[] args)
{
var t = new { SomeProperty = 12345 };
WriteSomePropertyOfAnything(t);
}
static void WriteSomePropertyOfAnything(object anything)
{
var someProperty = anything.GetType().GetProperty("SomeProperty");
if (someProperty is not null)
{
Console.WriteLine(someProperty.GetValue(anything));
}
else
{
Console.WriteLine($"У {anything.GetType()} нет свойства SomeProperty");
}
}
You cannot declare a field, a property, an event, or the return type of a method as having an anonymous type. Similarly, you cannot declare a formal parameter of a method, property, constructor, or indexer as having an anonymous type.
В первом примере дело же не в ConcurrentDictionary а в методе TryAdd вместо Add. Вот такой код отработает без ошибок даже с обычным Dictionary:
Dictionary<int, string> dictionary = []; // <- обычный dictionary
var t1 = new Thread(Method1);
var t2 = new Thread(Method2);
t1.Start(); // Запускаем
t2.Start();
t1.Join(); // Ждем
t2.Join();
foreach (var item in dictionary)
Console.WriteLine($"Key:{item.Key}, Value:{item.Value}");
void Method1()
{
for (var i = 0; i < 10; i++)
{
// В примере 1 тут сначала Add, потом TryAdd
dictionary.TryAdd(i, "Added By Method1 " + i);
Thread.Sleep(100);
}
}
void Method2()
{
for (var i = 0; i < 10; i++)
{
// Аналогично
dictionary.TryAdd(i, "Added By Method2 " + i);
Thread.Sleep(100);
}
}
Соответственно вывод программы точно такой-же как и в варианте с ConcurrentDictionary:
Key:0, Value:Added By Method1 0
Key:1, Value:Added By Method2 1
Key:2, Value:Added By Method1 2
Key:2, Value:Added By Method2 2
Key:3, Value:Added By Method2 3
Key:4, Value:Added By Method2 4
Key:5, Value:Added By Method1 5
Key:6, Value:Added By Method1 6
Key:7, Value:Added By Method2 7
Key:8, Value:Added By Method2 8
Key:9, Value:Added By Method1 9
Обратимая функция, это когда зная Y можно найти единственный X такой, что f(X) = y. В нашем случае, f(A, B) = f(B, A) = C. Да, A и B можно найти, но подходящих решений - 2
В нашем случае в .ico файле значок один. Я имел в виду размеры прямоугольника вокруг иконки, которую система нарисовала на рабочем столе. Получается, в статье подразумевается именно размер плитки)
//АТАТА!! Тут дедлок - таски не запущены, но у нас все равно дедлок!!!
await TestTaskConstructors();
async Task TestTaskConstructors() {
var task1 = new Task(() => {
Console.WriteLine("Hello world from Task1!");
});
var task2 = new Task(() => {
Console.WriteLine("Hello world from Task2!");
});
await Task.WhenAll(task1, task2);
}
Roslyn анализатор можно написать, который будет сборку блокировать если увидит неправильный каст
Нет волшебной фразы "Не является инвестиционной рекомендацией")
HA можно точно так-же заставить из домашней сети в интернет торчать, если есть белый IP вообще здорово) В крайнем случае можно подключаться в сеть по VPN-подобным схемам
Так в этом и плюс, разве нет?) Можно распаковать несколько файлов из одного архива, в какой то момент даже может быть сюжетный поворот которого не было в оригинальном фильме (вероятность этого бесконечно мала, но не 0)
на минус случайно нажал
Есть вариант получения Шрека из любого хэша, пусть распакованный файл будет такого вида:
4 байта - длина файла
~60ГБ - полезные данные (Шрек 2)
32 байта Nonce (случайное число)
В таком случае даже из хэша
0xFFFFFFFF...
рано или поздно можно распаковать и Shrek 2 и Мадагаскар и Тачки 3.В .NET, если правильно помню, рантайм такое не позволяет делать, в T явно должно быть свойство Id
Берем код:
На выходе видим это:
Анонимный тип как аргумент функции это когда вот так:
Такое нельзя сделать в C#, хотя-бы потому что нельзя использовать
<>
в названии типа.По вашей логике и
dynamic
особо не нужен, можно и такТут про это сказано:
Кажется что да, на самом деле непосредственно поля с анонимным типом там не будет: ссылка на SharpLab
Верно, но я имел в виду что приложение именно не падает)
Принципиальной ошибки нет, в .NET Framework 2 появились дженерики, их поддержка появилась в C# 2
В первом примере дело же не в
ConcurrentDictionary
а в методеTryAdd
вместоAdd
. Вот такой код отработает без ошибок даже с обычнымDictionary
:Соответственно вывод программы точно такой-же как и в варианте с
ConcurrentDictionary
:С телефона баннеры не видно к сожалению)
Hidden text
Не в укор обсидиану, сам пользуюсь)
Обратимая функция, это когда зная Y можно найти единственный X такой, что
f(X) = y
. В нашем случае,f(A, B) = f(B, A) = C
. Да, A и B можно найти, но подходящих решений - 2Автор статьи
В нашем случае в .ico файле значок один. Я имел в виду размеры прямоугольника вокруг иконки, которую система нарисовала на рабочем столе. Получается, в статье подразумевается именно размер плитки)
Мне этот маневр стоил часа полтора, честно до конца довести терпения не хватило) Перезалью чуть позже полную версию
Отступы съехали