- 전체
- Native Apps
- WinJS App
- C# Apps
- XAML
- VB.net
- VisualC.net
- C++
- MFC
- visual studio mobile app dev
- Azure ms cloud service
- Asp.net
- 인공지능 (AI)
- wpf
- UWP
- MAUI
- asp.net
C# Apps Reflection introduction
2017.06.25 15:16
Reflection introduction
Wikipedia says that "In computer science, reflection is the process by which a computer program can observe and modify its own structure and behaviour". This is exactly how Reflection in C# works, and while you may not realize it at this point, being able to examine and change information about your application during runtime, offers huge potential. Reflection, which is both a general term, as well as the actual name of the reflection capabilities in C#, works very, very well, and it's actually not that hard to use. In the next couple of chapters, we will go more into depth about how it works and provide you with some cool examples, which should show you just how useful Reflection is.
However, to get you started and hopefully interested, here is a small example. It solves a question that I have seen from many newcomers to any programming language: How can I change the value of a variable during runtime, only by knowing its name? Have a look at this small demo application for a solution, and read the next chapters for an explanation of the different techniques used.
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
namespace ReflectionTest
{
class Program
{
private static int a = 5, b = 10, c = 20;
static void Main(string[] args)
{
Console.WriteLine("a + b + c = " + (a + b + c));
Console.WriteLine("Please enter the name of the variable that you wish to change:");
string varName = Console.ReadLine();
Type t = typeof(Program);
FieldInfo fieldInfo = t.GetField(varName, BindingFlags.NonPublic | BindingFlags.Static);
if(fieldInfo != null)
{
Console.WriteLine("The current value of " + fieldInfo.Name + " is " + fieldInfo.GetValue(null) + ". You may enter a new value now:");
string newValue = Console.ReadLine();
int newInt;
if(int.TryParse(newValue, out newInt))
{
fieldInfo.SetValue(null, newInt);
Console.WriteLine("a + b + c = " + (a + b + c));
}
Console.ReadKey();
}
}
}
}
Try running the code and see how it works. Besides the lines where we use the actual Reflection, it's all very simple. Now, go to the next chapter for some more theory on how it works.
[출처] http://csharp.net-tutorials.com/reflection/introduction/
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
댓글 0
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
|---|---|---|---|---|
| 15 | C# getMethod : Call Method by Name | 졸리운_곰 | 2017.07.01 | 258 |
| 14 | Reflection for C++ | 졸리운_곰 | 2017.07.01 | 343 |
| 13 |
Load an EXE File and Run It from Memory
| 졸리운_곰 | 2017.07.01 | 333 |
| 12 |
.Net code injection 닷넷 코드 인젝션
| 졸리운_곰 | 2017.07.01 | 298 |
| 11 |
Three Ways to Inject Your Code into Another Process
| 졸리운_곰 | 2017.07.01 | 547 |
| 10 |
Visual C++를 사용하여 플랫폼 간 앱 제작
| 졸리운_곰 | 2015.08.16 | 645 |
| 9 |
webdav c++ lib 라이브러러
| 졸리운_곰 | 2015.05.11 | 395 |
| 8 | Use Visual Studio C++ 6.0 on Windows 8.1 64bit : 윈도우 8.1에서 비주얼 스투디오 6.0 사용하기 | 졸리운_곰 | 2015.05.09 | 632 |
| 7 |
Visual Studio 2013을 사용하여 앱 개발
| 졸리운_곰 | 2014.05.30 | 842 |
| 6 |
C++로 작성한 Windows 스토어 앱용 로드맵
| 졸리운_곰 | 2014.05.30 | 570 |
| 5 |
블로그 뷰어 앱 만들기(C++)
| 졸리운_곰 | 2014.05.30 | 3956 |
| 4 |
C++ Windows 스토어 앱에서 파일 선택기 사용(자습서 4/4)
| 졸리운_곰 | 2014.05.30 | 762 |
| 3 |
C++ Windows 스토어 앱에서 탐색 및 보기 추가(자습서 3/4)
| 졸리운_곰 | 2014.05.30 | 594 |
| 2 |
C++ Windows 스토어 앱의 수명 주기 및 상태 관리(자습서 2/4)
| 졸리운_곰 | 2014.05.30 | 496 |
| 1 |
기본 C++ Windows 스토어 앱 만들기(자습서 1/4)
| 졸리운_곰 | 2014.05.30 | 857 |

