Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
C#のリフレクションを使ってみよう
Search
kyoma
April 26, 2019
Programming
3.4k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
C#のリフレクションを使ってみよう
C#におけるリフレクションの概略
・概要
・できること
・使用上の注意
kyoma
April 26, 2019
Other Decks in Programming
See All in Programming
Vibes Containers 〜AIで変わるコンテナ設計と運用〜
tkikuc
3
530
iOSDC2026登壇資料.pdf
riofujimon
0
140
AI × TiDD / 2026.09.05 Redmine 大阪
tokudiro
1
140
iOS開発×AI駆動開発 〜最近使って便利だったスキルの話〜
nogu66
0
150
AIは賢い。でも実行環境は? CLIおじさんがAI時代に伝えたいこと ~ CLIおじさんがAI時代に伝えたいこと ~
curekoshimizu
1
240
フロントエンドUIフレームワークのこれまでとこれから
ssssota
5
2.6k
AGENTS.md Is Not Enough:Build Skills, Don't Download Them
lx_t
0
110
ゲームコントローラやキーボードのファームウェアをSwiftで書く
kishikawakatsumi
1
230
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
0
250
Kiroで創り、AgentCoreで繋ぐ!AWSで実践する「AI-DLC」から「AIエージェント統合」までの最新地図
licux
4
670
技術的負債の返済は、AI時代の複利で効く投資 — 経営としての意思決定とその遂行
curekoshimizu
0
680
AI Agent時代のリアーキテクチャ戦略と実践
hokaccha
9
4.2k
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
Making the Leap to Tech Lead
cromwellryan
135
10k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Navigating Weather and Climate Data
rabernat
0
520
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
600
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Agile that works and the tools we love
rasmusluckow
331
22k
sira's awesome portfolio website redesign presentation
elsirapls
0
410
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
430
Exploring anti-patterns in Rails
aemeredith
3
500
Leo the Paperboy
mayatellez
9
2.3k
Transcript
C#のリフレクションを使っ てみよう きょーま
name : きょーま job : クライアントエンジニア ・新機能開発 ・デバッグ機能 ・Unity /
C# / C++ hobby : ゲーム、お絵かき、酒 自己紹介 profile
みなさん
C# 使ってますか?
リフレクション 使ってますか?
#リフレクションとは • C#の機能の一つ • 実行時型情報と呼ばれるもの • プログラム実行時に メタデータを取り出す機能 • “C#
リフレクション” で検索検索ゥ what is reflection ?
要するに
文字列から指定クラスの インスタンスを作ったり
privateなメンバを参照したり
privateなメソッドを 外から実行できる
非常に治安の悪い機能!!
チュートリアル tutorial 1. インスタンスを作る 2. privateなフィールドを取得 3. privateなメソッドを呼ぶ
基本的な使い方 how to use 1. SystemとSystem.Reflection をusing 2. Typeを取得 3.
Typeから FieldInfo、MethodInfoを取得
例えば こんなクラスがあったとする
← インスタンスを作る ← privateなフィールドを取得 ← privateなメソッドを呼ぶ
検索方法の制御 BindingFlags BindingFlags • フィールドやメソッドを 取得するときの条件 • NonPublicでprivateを対象に • 他にもstaticをとったり
大文字小文字を無視したり • 詳しくはWebで!!
これでpublicとかprivateとか 気にせずコードを書けるぜ あいつのコード、 privateばっかでうぜーんだよな
ダメです
リフレクションを使用す るべきではない理由 why not use reflection • カプセル化を破壊する • パフォーマンスが悪い
基本的にロジックや設計に リフレクションを使うべきでない
リフレクションの活 用場所 effective use of reflection • デバッグ機能 • ホットリロードなツール
デバッグ機能 for debugging • デバッグのために ロジックが歪にならない • メインロジックの 単体テストが容易にできる
ホットリロード なツール for hot reload • ゲームを動かしながらできる データ反映やデバッグ機能 • 試行錯誤が容易
ホットリロードな デバッグツールの例 example hot reload debugging tool • フィールドのある地点に 障害物や敵キャラを配置する
• 戦闘中にあるキャラクターの パラメータを変更する
ゲームロジック のクラス群 デバッグ機能 or データツール ロジックとデバッグ用のコードを切り離せる ゲームロジック内にテストコードを 書かなくて良いという意味ではない リフレクションで参照 高い凝集度・疎結合
1つのプロジェクト
まとめ summary • C#にはリフレクションって 治安が悪い機能があるよ • メインロジックでは 基本的に使わないのが吉だよ • 工夫すれば、
便利な使い方ができるよ