์ ๊ณต ๊ณผ๋ชฉ/์๋์ฐ ํ๋ก๊ทธ๋๋ฐ(18)
-
C# - ๊ณ ๊ธ ํ๋ก๊ทธ๋๋ฐ (์ค๋ ๋)
C# - ๊ณ ๊ธ ํ๋ก๊ทธ๋๋ฐ (์ค๋ ๋) ์ค๋ ๋ - ํ๋ก๊ทธ๋จ ๋ด๋ถ์ ์๋ ์ ์ด์ ๋จ์ผ ์์ฐจ ํ๋ฆ. ๋จ์ผ ์ค๋ ๋ vs ๋ฉํฐ ์ค๋ ๋ - ๋จ์ผ ์ค๋ ๋๋ ํ, ๊ณต์ ๋ฐ์ดํฐ, ์ฝ๋, ์คํ, ๋ ์ง์คํฐ๊ฐ ํ๋๋ง ์๋ ๊ตฌ์กฐ์ด๊ณ , ๋ฉํฐ ์ค๋ ๋๋ ํ, ๊ณต์ ๋ฐ์ดํฐ, ์ฝ๋, ๋ ์ง์คํฐ๋ ํ๋์ง๋ง, ์คํ์ด ์ฌ๋ฌ๊ฐ์ด๋ฉฐ ์ํ์ ๋ณด๊ฐ ์ฌ๋ฌ๊ฐ์ธ ๊ฒ์ ์๋ฏธํ๋ค. ์ค๋ ๋ ์์ using System; using System.Threading; class SimpleThreadApp { static void ThreadBody() { for (int i =0; i
2020.11.27 -
C# - ๊ณ ๊ธํ๋ก๊ทธ๋๋ฐ (์์ธ)
C# - ๊ณ ๊ธํ๋ก๊ทธ๋๋ฐ (์์ธ) ์ด๋ฒ ์ฅ์์๋ ์์ธ์ ๋ํด์ ์์๋ณผ ๊ฒ์ด๋ค. ์์ธ๋ ํ๋ก๊ทธ๋จ ์คํ์๊ฐ์ ๋ฐ์ํ๋ ์๋ฌ๋ฅผ ์ผ์ปซ๋ ๋ง์ด๋ค. ์ด๋ฌํ ์์ธ์ ๋ํด์ ์ฒด๊ณ์ ์ผ๋ก ๊ฒ์ฌํ๊ณ ์ฒ๋ฆฌํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํด ์ฃผ๋ ๊ฒ์ด ์ฐ๋ฆฌ ํ๋ก๊ทธ๋๋จธ๋ค์ ์ญํ ์ด๋ค. ์ด๋ฅผ ์์ธ ์ฒ๋ฆฌ๊ธฐ ์์ฑ์ด๋ผ๊ณ ํ๋ค. ์ผ๋ฐ์ ์ผ๋ก ์์ธ๋ Exceptionํด๋์ค์ ํ์ ํด๋์ค์ธ ApplicationException ํด๋์ค๋ฅผ ์์๋ฐ์ ์๋ก์ด ์์ธ ํด๋์ค๋ฅผ ์ ์ํ๋ค. ์๋ ๊ฐ๋จํ ์์ ๋ฅผ ํตํด ํ์ธํด๋ณด์. public class UserErrException : ApplicationException { public UserErrException(string s): base(s) { } } public class Program { public sta..
2020.11.27 -
C# ๊ณ ๊ธ ํ๋ก๊ทธ๋๋ฐ - ์ ํธ๋ฆฌ๋ทฐํธ
C# ๊ณ ๊ธ ํ๋ก๊ทธ๋๋ฐ - ์ ํธ๋ฆฌ๋ทฐํธ ์ ํธ๋ฆฌ๋ทฐํธ - ์ด์ ๋ธ๋ฆฌ๋ ํด๋์ค, ํ๋, ๋ฉ์๋, ํ๋กํผํฐ ๋ฑ์ ๋ค์ํ ์ ๋ณด๋ฅผ ์ถ๊ฐํ๊ธฐ ์ํด์ ์ฌ์ฉ - ๋ฉํ๋ฐ์ดํฐ ํ์์ผ๋ก ์ ์ฅ๋จ. ์ ํธ๋ฆฌ๋ทฐํธ๋ ํ์ค ์ ํธ๋ฆฌ๋ทฐํธ(.NET ํ๋ ์์ํฌ ์ ๊ณต)๊ณผ ์ฌ์ฉ์ ์ ์ ์ ํธ๋ฆฌ๋ทฐํธ๊ฐ ์๋ค. ๋จผ์ ํ์ค ์ ํธ๋ฆฌ๋ทฐํธ๋ฅผ ์์๋ณด์. ํ์ค ์ ํธ๋ฆฌ๋ทฐํธ - Conditional ์ ํธ๋ฆฌ๋ทฐํธ ์กฐ๊ฑด๋ถ ๋ฉ์๋๋ฅผ ์์ฑํ ๋ ์ฌ์ฉ define ์ ์ฒ๋ฆฌ๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ์กฐ๊ฑด์ ์ ํ๋ค. ๋ฐ๋์ System.dianostics๋ฅผ ๋ค์์คํ์ด์ค์ ํฌํจ์์ผ์ผ ํ๋ค. Conditional ์ ํธ๋ฆฌ๋ทฐํธ์ ์์ #define CSHARP using System; using System.Diagnostics; class ConditionalAttrApp { [Conditional("CS..
2020.11.27 -
C# - ๊ณ ๊ธ ํ๋ก๊ทธ๋๋ฐ(์ ๋ค๋ฆญ)
C# - ๊ณ ๊ธ ํ๋ก๊ทธ๋๋ฐ(์ ๋ค๋ฆญ) ์ ๋ค๋ฆญ ๋ณ์์ ํ์ ๋งค๊ฐ๋ณ์๋ก ํ์ฌ ํด๋์ค๋ ๋ฉ์๋์ ์๊ณ ๋ฆฌ์ฆ์ ๋ฌด๊ดํ๊ฒ ๊ธฐ์ ํ๋ ๊ธฐ๋ฒ. ์ค์ ํ ์ ๋ณด๋ "๊ฐ์ฒด ์์ฑ ์"์ ์ ๋ฌ๋ฐ์ ์ ๋ค๋ฆญ๋ ํด๋์ค์ด๋ฉด์ ๋งค๊ฐ๋ณ์์ ๋ค์์ฑ์ ๋ด๋ ์ ๋์ ์ธ ํด๋์ค๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค. ์ฆ intํ์ ๋งค๊ฐ๋ณ์๊ฐ ๋ค์ด์ค๋ฉด intํ์ ๋ฐ๋ผ ๋ฐฐ์ด์ ๋ง๋ ๋ค๊ฑฐ๋, ๋ฉ์๋๋ฅผ ๋ง๋ค๊ณ , doubleํ์ ์ ํ์ด ๋ค์ด์ค๋ฉด doubleํ์ ์ ๋ง์ถฐ์ ํด๋์ค ๋ด๋ถ๊ฐ ์งํ์ด ๋๋ค. ์ ๋ค๋ฆญ ํด๋์ค ์ฌ์ฉ์ ์ class SimpleGeneric { private T[] values; private int index; public SimpleGeneric(int len) { values = new T[len]; index = 0; } public void Add(para..
2020.11.27 -
C# - ํ์ ํด๋์ค์ ์ธํฐํ์ด์ค(2)
C# - ํ์ ํด๋์ค์ ์ธํฐํ์ด์ค(2) ์ธํฐํ์ด์ค - ๊ตฌํ๋์ง ์์ ๋ฉค๋ฒ๋ค๋ก ๊ตฌ์ฑ๋ ์ค๊ณ์ ํํ์ด๋ค. ํ๋ง ์ก์๋์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ํธํ ๊ฒ ๊ฐ๋ค. C#์์๋ ์ธํฐํ์ด์ค๋ก ๋ค์ค ์์์ ์ง์ํ๊ธฐ ๋๋ฌธ์ ์ค์ํ ๊ฐ๋ ์ด ๋๋ค. ์ธํฐํ์ด์ค์ ์ฒซ๊ธ์๋ I๋ก ์์ํ๋๊ฒ ๊ด๋ก์ด๋ฉฐ ์ธํฐํ์ด์ค ๋ชธ์ฒด๋ ๊ตฌํ๋์ง ์์ ๋ฉ์๋, ํ๋กํผํฐ, ์ธ๋ฑ์, ์ด๋ฒคํธ๊ฐ ๋ ์ ์๋ค. interface IMethod{ void Insert(string str);//๋ฉ์๋ int Count {get;set;} //ํ๋กํผํฐ string this[int index]{get;set;} //์ธ๋ฑ์ event MyEventHandler changed; //์ด๋ฒคํธ } ์ธํฐํ์ด์ค์์ ์ ์ธ๋ ๋ฉค๋ฒ๋ค์ ๋ชจ๋ public ์์ฑ์ ๊ฐ์ง๋ฉฐ static์ ์ฌ์ฉํ ..
2020.11.19 -
C# - ํ์ ํด๋์ค์ ์ธํฐํ์ด์ค
C# - ํ์ ํด๋์ค์ ์ธํฐํ์ด์ค ํ์ ํด๋์ค์ ์ธํฐํ์ด์ค .. ์ฒ์ ์ด ๊ฐ๋ ์ ์ ํ๋ฉด ํท๊ฐ๋ฆฐ๋ค. ์๋ฐ์์๋ ๋ฐฐ์ธ ๋ ํท๊ฐ๋ ธ๊ธฐ์ ์ด๋ฒ์ ํ์คํ๊ฒ ์ ๋ฆฌ๋ฅผ ํ๋ ค๊ณ ํ๋ค. ํ์ ํด๋์ค๋? - ์ด๋ฏธ ์กด์ฌํ๋ ํด๋์ค์ ์ ๋ณด๋ฅผ ์ถ๊ฐํ์ฌ ์๋ก์ด ํด๋์ค๋ฅผ ๋ง๋๋ ๊ฒ ์ฌ๊ธฐ์ ์ด๋ฏธ ์กด์ฌํ๋ ํด๋์ค๋ "๋ฒ ์ด์ค ํด๋์ค"์ด๋ค. ๋ฒ ์ด์ค ํด๋์ค์ ๋ชจ๋ ๋ฉค๋ฒ๋ค์ด ํ์ ํด๋์ค๋ก ์ฎ๊ฒจ์ง๋ ๊ณผ์ ์ "์์"์ด๋ผ๊ณ ํ๋ฉฐ ํ์ ํด๋์ค๋ฅผ ์ฌ์ฉํจ์ผ๋ก์จ "์ฌ์ฌ์ฉ์ฑ"์ ๋์ฌ์ค๋ค. ๊ฐ์ ๊ฑธ ๊ณ์ํด์ ์ ์ํ๊ณ ์ฌ์ฉํ๋ ๊ฒ ๋ฒ๊ฑฐ๋กญ๊ธฐ์ ์ด๋ฌํ ํด๋์ค๊ฐ ๋ํ๋ ๊ฒ์ด๋ค. ํ์ ํด๋์ค์ ์ ์ ๋ฐฉ๋ฒ [์ ๊ทผ ์์ ์] class ํ์ ํด๋์ค๋ช : ๋ฒ ์ด์ค ํด๋์ค๋ช { ๋ฉค๋ฒ } ํ์ ํด๋์ค์์ ํ๋์ ์ด๋ฆ๊ณผ ๋ฒ ์ด์ค ํด๋์ค ํ๋์ ์ด๋ฆ์ด ๊ฐ๋ค๋ฉด ์ด๋ป๊ฒ ๋ ๊น? -> ๋ฒ ์ด์ค ..
2020.11.19