Size: a a a

2020 August 05

Dm

Dungeon master in С#
А так скорее всего он тоже в анонимный метод скомпилиться и не будет разници что делегат что свой метод пустой
источник

A

Aikidos in С#
Оля Матрёшкина
Ок. Спасибо
И отпиши, пожалуйста. Рили, самому стало интересно. Я бы, возможно по глупости, создал бы глобальный статик пустой, но думаю, может компилятор и так делает оптимизации такие.
источник

ОМ

Оля Матрёшкина... in С#
Aikidos
И отпиши, пожалуйста. Рили, самому стало интересно. Я бы, возможно по глупости, создал бы глобальный статик пустой, но думаю, может компилятор и так делает оптимизации такие.
Да я не смогу наверное. Я не очень шарю пока в этом.
источник

A

Aikidos in С#
Оля Матрёшкина
Да я не смогу наверное. Я не очень шарю пока в этом.
Хм, ща гляну по IL шо там
источник

ОМ

Оля Матрёшкина... in С#
Aikidos
Хм, ща гляну по IL шо там
Запиши видяху плиз как это делается
источник

A

Aikidos in С#
Не, каждый раз будет newobj для кода:

void Main()
{
   Test(delegate { });
   Test(delegate { });
   Test(delegate { });
   Test(delegate { });
}

void Test(Action action)
{

}

И для () => тоже
источник

A

Aikidos in С#
Может JIT оптимизирует подобное, тут я хз
источник

Dm

Dungeon master in С#
() => сахар под delegate {} вроде как но на 100% не могу утверждать
источник

Dm

Dungeon master in С#
Уже забыл немного
источник

Dm

Dungeon master in С#
После многократного использования ()=> , delegate плачет в сторонке
источник

Dm

Dungeon master in С#
О нем все забыли
источник

A

Aikidos in С#
Dungeon master
() => сахар под delegate {} вроде как но на 100% не могу утверждать
Да, сахар. Просто интересно, почему пустой не оптимизируется
источник

ОМ

Оля Матрёшкина... in С#
Aikidos
Не, каждый раз будет newobj для кода:

void Main()
{
   Test(delegate { });
   Test(delegate { });
   Test(delegate { });
   Test(delegate { });
}

void Test(Action action)
{

}

И для () => тоже
Спасибо. 🤝
источник

A

Aikidos in С#
Оля Матрёшкина
Спасибо. 🤝
Ну там много чего в IL'e. newobj так-то будет и при передаче статик функи вместо delegate{}. В общем, можно погонять бенчи через BenchmarkDotNet
источник

A

Aikidos in С#
Может и нет смысла заморачиваться
источник

A

Aikidos in С#
Там будет и аллокации видно и производительность.
источник

A

Aikidos in С#
Я так всегда делаю, когда затрудняюсь в принятии решений. Погонял в бенчмаркдотнете и увидел. Нужно бахнуть для линкпада плагин, чтобы быстро сравнивать кодес.
источник

ВГ

Влад Горбачёв... in С#
Привет. Может кто-то сталкивался с такой проблемой ранее - есть большая матрица, допустим 6x6, а мне нужно найти абсолютно все возможны матрицы 3x3.
источник

ВГ

Влад Горбачёв... in С#
О, вроде придумал
источник

ВГ

Влад Горбачёв... in С#
Прямолинейно, но работает
источник