Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Unsafe.BitCast のすゝめ。
Search
neno
January 11, 2025
Technology
0
310
Unsafe.BitCast のすゝめ。
.NET Conf 2024 Osaka x Fukuoka の LT 登壇資料
ブログ:
Unsafe.BitCast のすゝめ。
neno
January 11, 2025
Tweet
Share
More Decks by neno
See All by neno
Aspire をカスタマイズしよう & Aspire 9.2
nenonaninu
0
700
分解して理解する Aspire
nenonaninu
2
2.5k
.NET 9 のパフォーマンス改善
nenonaninu
0
3.2k
C# 13 / .NET 9 の新機能 (RC 1 時点)
nenonaninu
1
2.5k
Re:ゼロから始める Observability
nenonaninu
3
1.2k
Node-AI のリッチな WEB フロントエンドを支える技術
nenonaninu
3
1.7k
C# ではじめる OpenTelemetry
nenonaninu
0
5.5k
.NET 8 で既定で有効になった Dynamic PGO について
nenonaninu
3
10k
明日から使える ASP.NET Core ロギング術!
nenonaninu
1
12k
Other Decks in Technology
See All in Technology
20250910_障害注入から効率的復旧へ_カオスエンジニアリング_生成AIで考えるAWS障害対応.pdf
sh_fk2
3
240
これでもう迷わない!Jetpack Composeの書き方実践ガイド
zozotech
PRO
0
320
20250903_1つのAWSアカウントに複数システムがある環境におけるアクセス制御をABACで実現.pdf
yhana
3
550
S3アクセス制御の設計ポイント
tommy0124
3
190
roppongirb_20250911
igaiga
1
210
下手な強制、ダメ!絶対! 「ガードレール」を「檻」にさせない"ガバナンス"の取り方とは?
tsukaman
2
430
品質視点から考える組織デザイン/Organizational Design from Quality
mii3king
0
200
機械学習を扱うプラットフォーム開発と運用事例
lycorptech_jp
PRO
0
230
KotlinConf 2025_イベントレポート
sony
1
130
現場で効くClaude Code ─ 最新動向と企業導入
takaakikakei
1
240
AWSを利用する上で知っておきたい名前解決のはなし(10分版)
nagisa53
10
3.1k
RSCの時代にReactとフレームワークの境界を探る
uhyo
10
3.4k
Featured
See All Featured
Practical Orchestrator
shlominoach
190
11k
Six Lessons from altMBA
skipperchong
28
4k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
840
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
We Have a Design System, Now What?
morganepeng
53
7.8k
Optimizing for Happiness
mojombo
379
70k
How GitHub (no longer) Works
holman
315
140k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
The Power of CSS Pseudo Elements
geoffreycrofte
77
6k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Transcript
Unsafe.BitCast のすゝめ。 . NET Conf 2024 Osaka x Fukuoka 2025/01/11
何縫ねの。
何縫ねの。 NTT コミュニケーションズ イノベーションセンター Microsoft MVP for Developer Technologies (2024~)
.NET / Web Development nenoNaninu @nenoMake ブログ https://blog.neno.dev その他 https://neno.dev
OSS SignalR 周りのいろいろ開発しています •TypedSignalR.Client • C# の SignalR Client を強く型付けするための
Source Generator •TypedSignalR.Client.TypeScript • TypeScript の SignalR Client を強く型付けするための .NET Tool / library •TypedSignalR.Client.DevTools • SignalR 向けに Swagger UI 相当の GUI を自動生成する library •AspNetCore.SignalR.OpenTelemetry • SignalR の OpenTelemetry 対応 + log 強化 https://github.com/nenoNaninu
C# 13 / .NET 9 関連資料 新機能について語っています…! https://speakerdeck.com/nenonaninu/net-9-noxin-ji-neng-rc-1-shi-dian
C# 13 / .NET 9 関連資料 パフォーマンス改善についても語っています…! https://speakerdeck.com/nenonaninu/dot-net-9-nopahuomansugai-shan
Unsafe.As 使っていますか?
Unsafe.As は危険① サイズの違う値型をキャストした場合、意図しないメモリ領域を読んでしまう
Unsafe.As は危険② 参照型をキャストした場合
Unsafe.As は使い方を絞れば安全 •メモリレイアウトが同一な構造体 •サイズが同一で参照型を含まない構造体
そこで Unsafe.BitCast ですよ
Unsafe.As と Unsafe.BitCast
Unsafe.BitCast の特徴 •Unsafe.BitCast の型引数として渡せるのは構造体だけ • 構造体でなかったら実行時例外 •キャスト元とキャスト先の構造体のサイズは同一でなければならない • サイズが同一でなければ実行時例外 •パラメータは参照渡しではなく値渡し
Unsafe.As より 安全かつパフォーマンスも改善
Unsafe.BitCast はいいぞ
ブログに書いています https://blog.neno.dev/entry/2025/01/07/182438