[C#] Delegate, Event (Feat. 무λͺ… ν•¨μˆ˜, Func, Action)
Β·
πŸ“ Language/✏ C#
1. Delegate(λŒ€λ¦¬μž)DelegateλŠ” λ©”μ„œλ“œλ₯Ό μ°Έμ‘°ν•˜λŠ” νƒ€μž…μ΄λ‹€. λŒ€λ¦¬μžλ₯Ό μ‚¬μš©ν•˜λ©΄ λ©”μ„œλ“œλ₯Ό λ³€μˆ˜μ²˜λŸΌ μ „λ‹¬ν•˜κ³  ν˜ΈμΆœν•  수 μžˆλ‹€.μ΄λ²€νŠΈμ™€ ν•¨κ»˜ λŒ€λ¦¬μžλ₯Ό μ‚¬μš©ν•˜μ—¬ 이벀트 ν•Έλ“€λŸ¬μ— λ“±λ‘ν•˜κ³  ν˜ΈμΆœν•  수 μžˆλ‹€. μ΄λ²€νŠΈκ°€ λ°œμƒν•˜λ©΄ λ“±λ‘λœ λͺ¨λ“  이벀트 ν•Έλ“€λŸ¬κ°€ ν˜ΈμΆœλ˜μ–΄ μ²˜λ¦¬λœλ‹€. BeginInvoke, EndInvoke λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ λŒ€λ¦¬μžλ₯Ό λΉ„λ™κΈ°μ μœΌλ‘œ ν˜ΈμΆœν•˜κ³  κ²°κ³Όλ₯Ό μ²˜λ¦¬ν•  수 μžˆλ‹€.λ‹€λ₯Έ λ©”μ„œλ“œμ˜ 콜백 ν•¨μˆ˜λ₯Ό 전달할 수 μžˆλ‹€. 보톡 비동기 μž‘μ—…κ³Ό ν•¨κ»˜ μ‚¬μš©ν•œλ‹€.// delegate λ°˜ν™˜ν˜• delegateλͺ…(λ§€κ°œλ³€μˆ˜, λ§€κ°œλ³€μˆ˜, λ§€κ°œλ³€μˆ˜, ....);delegate int DelegateName(int value1, string value2); λŒ€λ¦¬μžλŠ” 보톡 μ—¬λŸ¬ 개의 λ©”μ„œλ“œλ₯Ό λ™μ‹œμ— ν˜ΈμΆœν•΄μ•Ό ν•  λ•Œ ..
[C#] abstract, interface, virtual (feat. override, new)
Β·
πŸ“ Language/✏ C#
1. abstract, interface, virtual 1) abstract abstractλŠ” νŒŒμƒ ν΄λž˜μŠ€μ—κ²Œ 곡톡적인 μ •μ˜λ₯Ό μ œκ³΅ν•¨κ³Ό λ™μ‹œμ— νŒŒμƒ ν΄λž˜μŠ€μ— μ‚¬μš©λ  κΈ°λŠ₯을 κ°•μ œμ μœΌλ‘œ μž¬μ •μ˜ν•¨μ— μžˆλ‹€. abstract ν‚€μ›Œλ“œλ‘œ μ •μ˜ν•œ λ©”μ„œλ“œλ‚˜ 속성은 본문을 μ •μ˜ν•  수 μ—†λ‹€. 일반 λ©”μ„œλ“œλ‚˜ 속성을 μ •μ˜ν•  수 μžˆλ‹€. μΈμŠ€ν„΄μŠ€ν™”ν•  수 μ—†λ‹€. abstract class Animal { public string name; public abstract void Speak(); public void Sleep() { Console.WriteLine("Zzzzz..."); } } class Dog : Animal { public Dog(string name) { this.name = name; } public over..
[C#] DateTime, TimeSpan, Stopwatch
Β·
πŸ“ Language/✏ C#
1. DateTime λ‚ μ§œμ™€ μ‹œκ°„μ„ μ·¨κΈ‰ν•  λ•Œ μ‚¬μš©ν•˜λŠ” ν΄λž˜μŠ€μ΄λ‹€. ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ κ°€μ Έμ˜€κ±°λ‚˜ λ‚ μ§œμ™€ μ‹œκ°„μ„ μ‚¬μš©μžκ°€ μ§€μ •ν•˜μ—¬ μƒˆ μΈμŠ€ν„΄μŠ€λ₯Ό λ§Œλ“€ 수 μžˆλ‹€. μ„œμ‹ μ§€μ •μžλ₯Ό μ΄μš©ν•˜μ—¬ μ„œμ‹μ— 맞게 λ‚ μ§œ 및 μ‹œκ°„μ„ λ¬Έμžμ—΄λ‘œ λ³€ν™˜ν•˜μ—¬ 좜λ ₯ν•  수 μžˆλ‹€. 1) 생성 μ—¬λŸ¬ 가지 λ°©λ²•μœΌλ‘œ μƒˆ DateTime 값에 초기 값을 ν• λ‹Ήν•  수 μžˆλ‹€. μƒμ„±μž 호좜 μƒμ„±μžλ₯Ό 톡해 λ‚ μ§œμ™€ μ‹œκ°„μ„ μ‚¬μš©μžκ°€ μ§€μ •ν•˜μ—¬ μƒˆ μΈμŠ€ν„΄μŠ€λ₯Ό λ§Œλ“€ 수 μžˆλ‹€. public DateTime(long ticks) public DateTime(long ticks, DateTimeKind kind) public DateTime(int year, int month, int day) public DateTime(int year, int month, int ..
[C++] RTTI(Run Time Type Information)
Β·
πŸ“ Language/✏ C & C++
RTTI(Run Time Type Information) C++μ—μ„œλŠ” λŸ°νƒ€μž„μ— 기초 클래슀의 객체 포인터가 μ–΄λ–€ 객체λ₯Ό 가리킀고 μžˆλŠ”μ§€ 정보λ₯Ό μ•Œλ €μ£ΌλŠ” RTTI κΈ°λŠ₯을 μ œκ³΅ν•œλ‹€. 객체 지ν–₯에선 클래슀 κ°„ 상속을 κ΅¬ν˜„ν•  수 있고, λ‹€ν˜•μ„±μ„ κ°€μ§€κ²Œ λ˜μ–΄ 기초 ν΄λž˜μŠ€λŠ” μžμ‹ μ˜ 멀버λ₯Ό μœ„μž„ν•œ νŒŒμƒ 클래슀λ₯Ό μžμ‹ μ˜ 객체 ν¬μΈν„°λ‘œ 가리킬 수 μžˆλ‹€. Base *pBase = new Derived(); 컴파일 λ‹Ήμ‹œμ—λŠ” pBaseκ°€ μ–΄λ–€ 객체λ₯Ό 가리킀고 μžˆλŠ”μ§€ μ•Œ 수 μ—†λ‹€. κ·Έμ € 기초 ν΄λž˜μŠ€μ™€ νŒŒμƒ 클래슀 쀑 μ–΄λ–€ 객체λ₯Ό 가리킀고 μžˆλŠ”μ§€ μ§μž‘λ§Œ ν•  수 μžˆλ‹€. μ΄λŸ¬ν•œ 정보λ₯Ό μ•Œλ €μ£ΌλŠ” 것이 RTTI이고 ν˜„μž¬ 객체 포인터가 가리킀고 μžˆλŠ” 객체 νƒ€μž… 정보λ₯Ό type_infoλΌλŠ” μ΄λ¦„μœΌλ‘œ vftable에 μ €μž₯ν•œλ‹€. 1. dyna..
[C#] Math
Β·
πŸ“ Language/✏ C#
Math 1. Math VS C# math μˆ˜ν•™μ  곡식을 C#μ—μ„œ κ·ΈλŒ€λ‘œ ν‘œν˜„ν–ˆμ„ λ•Œ, κ°„ν˜Ή 잘λͺ»λœ κ²°κ³Όλ₯Ό μ‚°μΆœν•˜λŠ” κ²½μš°κ°€ μžˆλ‹€. 예λ₯Ό λ“€μ–΄ 섭씨λ₯Ό ν™”μ”¨λ‘œ λ³€ν™”ν•˜λŠ” μˆ˜ν•™μ  곡식은 λ‹€μŒκ³Ό κ°™λ‹€. °F = °C × 9/5 + 32 이λ₯Ό μ½”λ“œλ‘œ μž‘μ„±ν•˜λ©΄ μ•„λž˜μ™€ 같이 ν‘œν˜„ν•  수 μžˆλ‹€. μˆ˜ν•™μ μœΌλ‘œ F1와 F2λŠ” λ™μΌν•œ μ‹μ΄μ§€λ§Œ, C#μ—μ„œλŠ” F2λŠ” 잘λͺ»λœ κ²°κ³Όλ₯Ό μ‚°μΆœν•œλ‹€. double C = 25.50; double F1 = C * 9 / 5 + 32; double F2 = C * (9 / 5) + 32; Console.WriteLine(F1); // 77.9F Console.WriteLine(F2); // 57.5F μ΄λ•Œ μ‚¬μš©λœ ν‚€μ›Œλ“œκ°€ var이닀. varλŠ” C# 데이터 νƒ€μž…μ„ μ»΄νŒŒμΌλŸ¬κ°€ μΆ”λ‘ ν•΄μ„œ μ•Œμ•„μ„œ μ •ν•˜κ²Œ ..
[C#] struct λŒ€μ‹  classλ₯Ό 써야 ν•  λ•Œ
Β·
πŸ“ Language/✏ C#
struct λŒ€μ‹  classλ₯Ό 써야 ν•  λ•Œ κ°„λ‹¨ν•œ 데이터 ꡬ쑰λ₯Ό ν‘œν˜„ν•  λ•Œ μ’…μ’… structλ₯Ό μ‚¬μš©ν•˜κ³€ ν•œλ‹€. μ΄λ•Œ ν•¨μˆ˜ μ•ˆμ—μ„œ μ‚¬μš©λ˜λŠ” structλŠ” Value νƒ€μž…μœΌλ‘œ μŠ€νƒμ— μƒμ„±λ˜κ³ , classλŠ” Reference νƒ€μž…μœΌλ‘œ μΈμŠ€ν„΄μŠ€κ°€ νž™μ— μƒμ„±λœλ‹€. μ΄λŸ¬ν•œ ꡬ쑰적인 μ°¨μ΄λŠ” λ•Œλ‘œ 버그λ₯Ό λ°œμƒμ‹œν‚€κ³€ ν•œλ‹€. μ•„λž˜μ™€ 같은 μ˜ˆμ œκ°€ μžˆλ‹€. struct Employee { public string Name { get; set; } public int Salary { get; set; } } class HR { public void RaiseSalary(Employee emp) { emp.Salary = emp.Salary + 1000; } } Employee emp = new Employee(); emp.Nam..