[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#] 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..
[C#] string 객체 μ‚¬μš©μ—μ„œ ν”νžˆ ν•˜λŠ” μ‹€μˆ˜
Β·
πŸ“ Language/✏ C#
string 객체 μ‚¬μš©μ—μ„œ ν”νžˆ ν•˜λŠ” μ‹€μˆ˜ ν•œ λ©”μ„œλ“œ μ•ˆμ˜ 둜컬 λ³€μˆ˜λ“€μ€ κ·Έ λ©”μ„œλ“œκ°€ 끝날 λ•Œ ν•΄μ œν•˜κ²Œ λœλ‹€. Value νƒ€μž…μ˜ λ³€μˆ˜λŠ” ν•¨μˆ˜ 리턴과 λ™μ‹œμ— μŠ€νƒμ—μ„œ ν•΄μ œλ˜κ³ , Reference νƒ€μž…μ˜ λ³€μˆ˜λŠ” GC에 μ˜ν•΄ νž™μ—μ„œ μžλ™ ν•΄μ œλœλ‹€. μ—¬κΈ°μ„œ ν”νžˆ ν•˜λŠ” μ‹€μˆ˜ 쀑 ν•˜λ‚˜λŠ” 레퍼런슀 νƒ€μž…μ˜ 객체λ₯Ό λΆˆν•„μš”ν•˜κ²Œ λ„ˆλ¬΄ 많이 λ§Œλ“œλŠ” 것이닀. 예λ₯Ό λ“€μ–΄ μ•„λž˜ μ˜ˆμ œλŠ” string 객체λ₯Ό n개 μ”© 계속 μƒμ„±ν•˜κ³  μžˆλ‹€. public string Get1ToN_Bad(int n) { string s = ""; for (int i = 1; i