UNSAFECSHARP Telegram 266
Marshal.OffsetOf

С помощью этого метода я в BECS нахожу где фактически находится поле в структуре, в которое я хотел бы записать данные.
Я это использую в кодогене, когда я точно знаю название поля и хочу вписать туда данные, но использовать рефлексию для этого нет никакого желания.

Работает примерно так:

var offset = Marshal.OffsetOf(type, field.Name);
codeGenOutput.Add($"var addr = (byte*)_addressOf(ref obj) + {offset};");
codeGenOutput.Add($"*(({objType}*)addr) = new SomeStruct(...);");


В итоге получается, что мы просто записываем данные в структуру obj без рефлексии и нам не важно приватное там поле или публичное.

#unsafe #fieldoffset #marshal
🔥31🤔6👍42



tgoop.com/unsafecsharp/266
Create:
Last Update:

Marshal.OffsetOf

С помощью этого метода я в BECS нахожу где фактически находится поле в структуре, в которое я хотел бы записать данные.
Я это использую в кодогене, когда я точно знаю название поля и хочу вписать туда данные, но использовать рефлексию для этого нет никакого желания.

Работает примерно так:


var offset = Marshal.OffsetOf(type, field.Name);
codeGenOutput.Add($"var addr = (byte*)_addressOf(ref obj) + {offset};");
codeGenOutput.Add($"*(({objType}*)addr) = new SomeStruct(...);");


В итоге получается, что мы просто записываем данные в структуру obj без рефлексии и нам не важно приватное там поле или публичное.

#unsafe #fieldoffset #marshal

BY Unity: Всё, что вы не знали о разработке


Share with your friend now:
tgoop.com/unsafecsharp/266

View MORE
Open in Telegram


Telegram News

Date: |

“Hey degen, are you stressed? Just let it all out,” he wrote, along with a link to join the group. End-to-end encryption is an important feature in messaging, as it's the first step in protecting users from surveillance. Over 33,000 people sent out over 1,000 doxxing messages in the group. Although the administrators tried to delete all of the messages, the posting speed was far too much for them to keep up. 4How to customize a Telegram channel? On June 7, Perekopsky met with Brazilian President Jair Bolsonaro, an avid user of the platform. According to the firm's VP, the main subject of the meeting was "freedom of expression."
from us


Telegram Unity: Всё, что вы не знали о разработке
FROM American