Size: a a a

2018 December 26

К

Карен in .NET CIL Chat
Dr. Friedrich von Never
Этот метод реализован в виртуальной машине, а не в байткоде.
ок, а что за аргумент target при передачи в конструктор делегата?
источник

К

Карен in .NET CIL Chat
этот аргумент всегда принимает null
источник

AK

Andrei Kurosh in .NET CIL Chat
Карен
этот аргумент всегда принимает null
Не всегда. Это, по сути, this
источник

К

Карен in .NET CIL Chat
однако если я сделаю экстеншен метод и сделаю так:
Action e = 123.Lyl; // где Lyl это экстеншен метод для object
то в target передастся забоксеный 123
источник

К

Карен in .NET CIL Chat
Andrei Kurosh
Не всегда. Это, по сути, this
хм...
источник

AK

Andrei Kurosh in .NET CIL Chat
К счастью, у нас не как в джиесе и превращение метода объекта в делегат запоминает этот объект
источник

К

Карен in .NET CIL Chat
Отлично
источник
2019 January 20

vl

vova lantsov in .NET CIL Chat
Всем привет. Кто-то может четко объяснить, почему здесь структура s копируется в s2 перед передачей в метод по ссылке? Я понимаю, что это для обеспечения полного readonly, но хочется понять, что именно мешает передать туда оригинальную структуру?
источник

vl

vova lantsov in .NET CIL Chat
При чём там копия создаётся 2 раза, в методе Main и в методе S1Foo
источник

VK

Vladislav Khapin in .NET CIL Chat
vova lantsov
При чём там копия создаётся 2 раза, в методе Main и в методе S1Foo
для структур которые не readonly struct происходит защитное копирование
источник

VK

Vladislav Khapin in .NET CIL Chat
источник

VK

Vladislav Khapin in .NET CIL Chat
источник

VK

Vladislav Khapin in .NET CIL Chat
Vladislav Khapin
для структур которые не readonly struct происходит защитное копирование
я конечно не помню всего, но логика там такая примерно
источник

vl

vova lantsov in .NET CIL Chat
Vladislav Khapin
я конечно не помню всего, но логика там такая примерно
Я знаю про ридонли структуры и что их копии не создаются. Я понимаю всё, кроме одного:  почему применяется это защитное копирование, что будет, если компилятор его не применит? Такой вот конкретный вопрос у меня, а не как оно работает) За статьи спс, почитаю
источник

VK

Vladislav Khapin in .NET CIL Chat
подробнее как "защита от мутации данных" я не отвечу, т.к. не помню статьи
источник

К

Карен in .NET CIL Chat
vova lantsov
Я знаю про ридонли структуры и что их копии не создаются. Я понимаю всё, кроме одного:  почему применяется это защитное копирование, что будет, если компилятор его не применит? Такой вот конкретный вопрос у меня, а не как оно работает) За статьи спс, почитаю
ну так если ты передашь структуру по ссылке и вызовешь метод который меняет внутреннее состояние структуры, то структура изменит своё значение. А оператор in должен предотвращать изменение значения в вызываемом методе.
источник

vl

vova lantsov in .NET CIL Chat
Карен
ну так если ты передашь структуру по ссылке и вызовешь метод который меняет внутреннее состояние структуры, то структура изменит своё значение. А оператор in должен предотвращать изменение значения в вызываемом методе.
Так сама структура не меняется, а меняются её внутренние поля
источник

vl

vova lantsov in .NET CIL Chat
in разве не защищает только изменение самого объекта типа s = new S1();
источник

vl

vova lantsov in .NET CIL Chat
Или в памяти структура как одно целое и изменение любого поля структуры повлечёт за собой изменение всей структуры?
источник

К

Карен in .NET CIL Chat
vova lantsov
Или в памяти структура как одно целое и изменение любого поля структуры повлечёт за собой изменение всей структуры?
Так и есть
источник