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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
neno
January 11, 2025
Technology
420
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Unsafe.BitCast のすゝめ。
.NET Conf 2024 Osaka x Fukuoka の LT 登壇資料
ブログ:
Unsafe.BitCast のすゝめ。
neno
January 11, 2025
More Decks by neno
See All by neno
大 AI 時代におけるC# の事情 ~ぶっちゃけトークを交えながら~
nenonaninu
1
490
.NET 10 のパフォーマンス改善
nenonaninu
3
7.4k
C# 14 / .NET 10 の新機能 (RC 1 時点)
nenonaninu
1
3.1k
Aspire をカスタマイズしよう & Aspire 9.2
nenonaninu
0
1.1k
分解して理解する Aspire
nenonaninu
2
3.2k
.NET 9 のパフォーマンス改善
nenonaninu
0
3.9k
C# 13 / .NET 9 の新機能 (RC 1 時点)
nenonaninu
1
2.8k
Re:ゼロから始める Observability
nenonaninu
3
1.6k
Node-AI のリッチな WEB フロントエンドを支える技術
nenonaninu
3
2.3k
Other Decks in Technology
See All in Technology
データ活用研修 データマネジメント【MIXI 26新卒技術研修】
mixi_engineers
PRO
4
720
「待ち時間」の消滅と「自我消耗」の加速:生成AI時代のエンジニアを救うメンタル・リソース管理
poropinai1966
0
300
AIエージェントの知識表現と推論に なぜグラフが使われるのか - 記号的AIの復権とニューラルAIとの統合
yohei1126
1
190
AI Agent を本番環境へ―― Microsoft Foundry × Azure Serverless で作る Enterprise-Ready な基盤
shibayan
PRO
1
640
Retriever と Reranker、結局どうする?
kazuaki
0
130
AI時代におけるテストの基礎の再定義 / Rethinking the Fundamentals of Testing in the AI Era
mineo_matsuya
15
6k
2026年のソフトウェア開発を考える(2026/07版) / Agentic Software Engineering 2026-07 Findy Edition
twada
PRO
31
18k
Azure Durable Functions で作った NL2SQL Agent の精度向上に取り組んだ話/aidevday2026
thara0402
0
120
最高のシステムプロンプトを作るためにフィードバック機能を導入した話
alchemy1115
0
180
Webの技術とガジェットで子どもも大人も楽しめるワクワク体験を提供する / Qiita Tech Festa Day 2026
you
PRO
1
310
最新IoT事例11選に学ぶ!現場の成功パターンと実践のコツ【SORACOM Discovery 2026】
soracom
PRO
0
120
人手不足への挑戦:車両保全を支えるIoTとクラウド内製化の道【SORACOM Discovery 2026】
soracom
PRO
0
150
Featured
See All Featured
Skip the Path - Find Your Career Trail
mkilby
1
170
From π to Pie charts
rasagy
0
240
Navigating Team Friction
lara
192
16k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
Accessibility Awareness
sabderemane
1
160
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
It's Worth the Effort
3n
188
29k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
600
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.7k
First, design no harm
axbom
PRO
2
1.2k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
420
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