C#
11. null ์กฐ๊ฑด๋ถ ์ฐ์ฐ์
๋null ์กฐ๊ฑด๋ถ ์ฐ์ฐ์ ?.๋ C# 6.0์์ ๋์ ๋์๋ค. ?.๊ฐ ํ๋ ์ผ์ ๊ฐ์ฒด์ ๋ฉค๋ฒ์ ์ ๊ทผํ๊ธฐ ์ ์ ํด๋น ๊ฐ์ฒด๊ฐ null์ธ์ง ๊ฒ์ฌํ์ฌ ๊ทธ ๊ฒฐ๊ณผ๊ฐ ์ฐธ(์ฆ, ๊ฐ์ฒด๊ฐ null)์ด๋ฉด ๊ทธ ๊ฒฐ๊ณผ๋ก null์ ๋ฐํํ๊ณ , ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ์๋ . ๋ค์ ์ง์ ๋ ๋ฉค๋ฒ๋ฅผ ๋ฐํํ๋ค. ==์ฐ์ฐ์๋ฅผ ์ด์ฉํ ์ฝ๋ ?. ์ฐ์ฐ์๋ฅผ ์ด์ฉํ ์ฝ๋ class Foo { public int member; } Foo foo = null; int?bar; if(foo==null) bar = null; else bar = foo.member; class Foo { public int member; } Foo foo = null; int? bar; bar = foo?.member; //foo ๊ฐ์ฒด๊ฐ null์ด ์๋๋ฉด member ํ๋์ ์ ๊ทผ..

10. ๋ฌธ์์ด ๋ค๋ฃจ๊ธฐ
string ํ์์ ๊ทธ์ ๋ฌธ์์ด์ ๋ด๋ ์ญํ ์ ํ ๋ฟ ์๋๋ผ, ๋ฌธ์์ด์ ๊ฐ๊ณตํ๊ธฐ ์ํ ๋ค์ํ ๊ธฐ๋ฅ๋ ํจ๊ป ์ ๊ณตํ๋ค. (1) ๋ฌธ์์ด ์์์ ์ฐพ๊ธฐ : ๋ฌธ์์ด ๋ด์ ์ด๋ ๋ถ๋ถ์ ๊ฐ๊ณตํ ๊ฒ์ธ๊ฐ (2) ๋ฌธ์์ด ๋ณํํ๊ธฐ : ๋ฌธ์์ด ์ค๊ฐ์ ์ฝ์ , ์ญ์ , ๋์๋ฌธ์ ๋ณํ, ๋ฌธ์์ด ์/๋ค ๊ณต๋ฐฑ์ ๊ฑฐ(๊ณต๋ฐฑ์ ๊ฑฐ ๋ฉ์๋ ์ค์!) (3) ๋ฌธ์์ด ๋ถํ ํ๊ธฐ : ๋ฌธ์์ด ์๋ฅด๊ธฐ, ๋ฌธ์์ด ๋ถ๋ฆฌํ๊ธฐ (4) ๋ฌธ์์ด ์์๋ง์ถ๊ธฐ : ๋ฌธ์์ด์ด ์ผ์ ํ ํ๊ณผ ๋ชจ์์ ๊ฐ์ถ๋๋ก ๋ง๋ค๊ธฐ (5) ์ผ์ชฝ/ ์ค๋ฅธ์ชฝ ๋ง์ถค (6) ์ซ์ ์์ํ (7) ๋ ์ง ๋ฐ ์๊ฐ ์์ํ (8) ๋ฌธ์์ด ๋ณด๊ฐ (1) ๋ฌธ์์ด ์์์ ์ฐพ๊ธฐ ๋ฉ์๋ ์ค๋ช IndexOf() ํน์ ๋ฌธ์์ด์ ์์น๋ฅผ ์ฐพ๋๋ค. LastIndexOf() ํน์ ๋ฌธ์์ด์ ์์น๋ฅผ ๋ค์์๋ถํฐ ์ฐพ๋๋ค. StartsWith() ํ..
9. ๊ณต์ฉ ํ์ ์์คํ
๋ฐ์ดํฐ ํ์ ์ฒด๊ณ : ๋ค์ํ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์, ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ๋ค์ ์กฐํฉํด์ ๋ณตํฉ ๋ฐ์ดํฐ ํ์์ ๋ง๋ค๊ณ , ์คํ๊ณผ ํ์ด๋ผ๋ ๋๊ฐ์ง ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ํ์ฉํด์ ๋ณ์์ ์๋ช ์ฃผ๊ธฐ์ ๋ฐ๋ผ ๋ณ์๋ฅผ ๊ฐ ํ์์ด๋ ์ฐธ์กฐํ์์ผ๋ก ๋ง๋ค์ด ์ฌ์ฉํ๋ ๊ฒ์ ๋ชจ๋ ์ผ์ปซ๋ ๊ฒ ์์ ๊ฐ์ c#์ ๋ชจ๋ ๋ฐ์ดํฐ ํ์ ์ฒด๊ณ๋ ๊ณต์ฉ ํ์ ์์คํ (common Type System : ๋ชจ๋๊ฐ ํจ๊ป ์ฌ์ฉํ๋ ๋ฐ์ดํฐ ํ์ ์ฒด๊ณ)๋ผ๋ .NET์ ํ์ ์ฒด๊ณ ํ์ค์ ๊ทธ๋๋ก ๋ฐ๋ฅด๊ณ ์๋ค. ์ ๊ดํธ์์ '๋ชจ๋'๋, C#์ ๋น๋กฏํ .NET์ ์ง์ํ๋ ๋ชจ๋ ์ธ์ด(๋ท๋ท ์ธ์ด)๋ฅผ ๋ปํจ. ์ฆ, ๊ณต์ฉ ํ์ ์์คํ ์ ๋ท๋ท ์ธ์ด๋ค์ด๋ผ๋ฉด ๋ฐ๋์ ๋ฐ๋ผ์ผ ํ๋ ๋ฐ์ดํฐ ํ์ ํ์ค์ด๋ค. ๋ง.์๊ฐ ๋ท๋ท "๊ณต์ฉ" ํ์ ์์คํ ์ ๋์ ํ ๊ฐ์ฅ ํฐ ์ด์ ๋ ๋ท๋ท ์ธ์ด๋ค๋ผ๋ฆฌ ์๋ก ํธํ์ฑ์ ๊ฐ๋๋ก ..
8. Var, Object ํ์๊ณผ์ ์ฐจ์ด?
var๋ object์ ๊ฐ์ ํ์์ด๋ผ๊ธฐ ๋ณด๋ค๋ ์ปดํ์ผ๋ฌ๊ฐ ์ด๊ธฐํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ณ ๊ทธ ํ์์ ์ถ๋ก ํ ์ ์๋๋ก ๋์์ฃผ๋ 'ํค์๋'์ด๋ค. int, string ๊ฐ์ ๋ช ์์ ํ์ ๋์ var๋ฅผ ์ฌ์ฉํด์ ๋ณ์๋ฅผ ์ ์ธํ๋ฉด ์ปดํ์ผ๋ฌ๊ฐ ์๋์ผ๋ก ํด๋น ๋ณ์์ ํ์์ ์ง์ ํด์ค๋ค. var ํค์๋๋ฅผ ์ด์ฉํด์ ๋ณ์๋ฅผ ์ ์ธํ๋ ค๋ฉด ๋ฐ๋์ ์ ์ธ๊ณผ ๋์์ ์ด๊ธฐํ๋ฅผ ํด์ฃผ์ด์ผํ๋ค. ๊ทธ๋์ผ๋ง ์ปดํ์ผ๋ฌ๊ฐ ๊ทธ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ณ ํ์์ ์ถ๋ก ํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. using System; using System.Text; using static System.Console; namespace Hello { class MainApp { static void Main(string[] args) { var a = 20; WriteLine("Type:{0}..
7. Nullable, HasValue, Value
: ๋น์ด ์๋ ์ํ๊ฐ ๋ ์ ์๋ ํ์ Null(๋น์ด์๋) + able(~๋ ์ ์๋) = "๋น์ด ์๋ ์ํ๊ฐ ๋ ์ ์๋" using System; using System.Text; using static System.Console; namespace Hello { class MainApp { static void Main(string[] args) { int? a = null; int? b = null; int? c = null; //int d = null; ์ปดํ์ผ ์ค๋ฅ! } } } ํ๋ก๊ทธ๋๋ฐ์ ํ๋ค ๋ณด๋ฉด ์ด๋ค ๊ฐ๋ ๊ฐ์ง์ง ์๋ ๋ณ์๊ฐ ํ์ํ ๋๊ฐ ์๋ค. 0์ด ์๋ ๋น์ด์๋ ๋ณ์, ์ฆ null ์ํ์ธ ๋ณ์๋ฅผ ์ํ๋ค๋ฉด ๋ณ์์๊ฒ ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋น์๋ ์ ์๋๋ก Nullabl..
6. ์์์ ์ด๊ฑฐ ํ์ (const, enum): ํ๋ก๊ทธ๋๋จธ์ ์ค์๋ฅผ ๋ง๋ ์ฅ์น
๋ณ์๋ ๋ด๊ณ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ผ๋ง๋ ์ง ๋ณ๊ฒฝํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด๋ค. ์์์ ์ด๊ฑฐ ํ์์ ๋ณ์์ ๋ฌ๋ฆฌ ์์ ๋ด๊ธด ๋ฐ์ดํฐ๋ฅผ ์ ๋ ๋ฐ๊ฟ ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด๋ค. ํ๋ก๊ทธ๋๋จธ์ ์ค์๋ก ๋ณ๊ฒฝํ์ง ๋ง์์ผ ํ ๋ณ์๋ฅผ ๊ฑด๋๋ฆฌ๋ฉด ์ฌ์ฉ์์๊ฒ ๋ฐฐํฌ๋ ํ๋ก๊ทธ๋จ์ ๋ฒ๊ทธ๋ฅผ ๋ธ๋ค. ์์์ ์ด๊ฑฐ ํ์์ ๋ณ์ ๋์ ์ฌ์ฉํ๋ฉด ์ปคํ์ผ๋ฌ๊ฐ ์์ค ์ฝ๋๋ฅผ ์ปดํ์ผํ ๋ ํ๋ก๊ทธ๋๋จธ์ ์ค์๋ฅผ ์ก์ ์๋ ค์ฃผ๊ณ , ๊ฒฐ๊ตญ์๋ ํ๋ก๊ทธ๋จ์ ๋ฒ๊ทธ๋ ์ค์ฌ์ค๋ค. (์์์ ๊ฐ์ ๋ฐ๊พธ๋ ค๊ณ ํ๋ฉด ์ปดํ์ผ๋ฌ๊ฐ ์๋ฌ ๋ฉ์์ง๋ฅผ ์์๋ธ๋ค.) ์์์ ์ ์ธ const ์๋ฃํ ์์ํ = ๊ฐ; ํ๋ก๊ทธ๋๋ฐ์ ํ๋ค ๋ณด๋ฉด ์ข ๋ฅ๋ ๊ฐ์ง๋ง ๋ค๋ฅธ ๊ฐ์ ๊ฐ๋ ์์๋ฅผ ์ ์ธํด์ผ ํ ๋๊ฐ ๊ฐ๋ ์๋ค. ํ๋ก๊ทธ๋๋จธ๊ฐ ์์๋ฅผ ์ ์ธํ๋ ๊ณผ์ ์์ ๋ ๋ค๋ฅธ ์ค์๋ฅผ ์ ์ง๋ฅผ ์ ์๋ ์๋ค. ์๋ฐฑ ๊ฐ์ ์์ ์ค์์ ์ค๋ณต๋..
5. Parse์ ToString() ๋ฌธ์์ด์ ์ซ์๋ก, ์ซ์๋ฅผ ๋ฌธ์์ด๋ก
Parse! C#์ ์ ์๊ณ์ด ํ์, ๋ถ๋ ์์์ ํ์ ๋ชจ๋์๊ฒ Parse()๋ผ๋ ๋ฉ์๋๋ฅผ ๋ฃ์๋ค. ์ด ๋ฉ์๋์ ์ซ์๋ก ๋ณํํ ๋ฌธ์์ด์ ๋๊ธฐ๋ฉด ์ซ์๋ก ๋ณํํด์ค๋ค. using System; using System.Text; using static System.Console; namespace Hello { class MainApp { static void Main(string[] args) { string numbers = "12345"; string fnumbers = "123.45"; int a = int.Parse(numbers); float b = float.Parse(fnumbers); WriteLine(numbers); //12345 WriteLine(fnumbers); //123.45 Write..
4. object ํ์, ๋ฐ์ฑ๊ณผ ์ธ๋ฐ์ฑ
object๋ ๋ฌผ๊ฑด, ๊ฐ์ฒด๋ผ๋ ๋ป์ ์์ด ๋จ์ด์ด๋ค. object ํ์์ ์ด๋ค ๋ฌผ๊ฑด(๋ฐ์ดํฐ)์ด๋ ์ง ๋ค๋ฃฐ ์ ์๋ ๋ฐ์ดํฐ ํ์์ด๋ค.(์์์ ํจ๊ณผ) C#์ object๊ฐ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ์ ์๋๋ก ์์์ด๋ผ๋ ์กฐ์น๋ฅผ ์ทจํ๋ค. (์์ : ๋ถ๋ชจ๋ก๋ถํฐ ๋ฐ์ดํฐ์ ๋ฉ์๋๋ฅผ ๋ฌผ๋ ค๋ฐ์ ์์์ ๋ถ๋ชจ์ ๋๊ฐ์ด ๋์ํ ์ ์๋ค. ์ปดํ์ผ๋ฌ๋ ์์์ ๋ถ๋ชจ๋ก ๊ฐ์ฃผํ ์ ์๊ฒ ๋๋ค.) ๋ชจ๋ ๋ฐ์ดํฐ ํ์(๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์๋ฟ ์๋๋ผ ๋ชจ๋ ๋ณตํฉ ๋ฐ์ดํฐ ํ์, ์ฌ์ง์ด ํ๋ก๊ทธ๋๋จธ๊ฐ ๋ง๋ ๋ฐ์ดํฐ ํ์ ๋ง์ ๋)์ด ์๋์ผ๋ก object ํ์์ผ๋ก๋ถํฐ ์์๋ฐ๊ฒ ํ์์ผ๋ฏ๋ก, object ํ์์ ๋ชจ๋ ๋ฐ์ดํฐ ํ์์ ์กฐ์์ด๋ค. int, long, char, bool, string ~~~ using System; using static System.Cons..
3. ๋ถํธ๊ฐ ์๋ ์ ์, ๋ถํธ๊ฐ ์๋ ์ ์, 2์ ๋ณด์๋ฒ
๋ถํธ ๋นํธ๊ฐ 0์ผ ๋๋ ์์, 1์ผ ๋๋ ์์ sbyte 0111 1111 = 127 sbyte 1111 1111 = -1 sbyte๋(short, int, long๊ณผ ๊ฐ์ ์ ์ํ๋ค๋ ๋ง์ฐฌ๊ฐ์ง) 2์ ๋ณด์๋ฒ์ด๋ผ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฑํํ์ฌ ์์๋ฅผ ํํํ๋ค. 2์ ๋ณด์๋ฒ์ ์ด์ฉํด์ ์์๋ฅผ ํํํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค. (1) ๋จผ์ ์ ๋ถ๋ถ ๋นํธ๋ฅผ ์ฑ์ด๋ค. (2) ์ ์ฒด ๋นํธ๋ฅผ ๋ฐ์ ์ํจ๋ค. (3) ๋ฐ์ ๋ ๋นํธ์ 1์ ๋ํ๋ค. -1์ ์๋ก ๋ค์๋ฉด (1) 00000001 : 1์ ์ ๋ถ๋ถ ๋นํธ์ ์ ๋ ฅ (2) 11111110 : 8๊ฐ์ ๋นํธ ์ ์ฒด๋ฅผ 1์ 0์ผ๋ก, 0์ 1๋ก ๋ฐ์ (3) 11111111 : ๋ฐ์ ๋ ๋นํธ์ 1์ ๋ํจ ์ฆ๋ช ์ฝ๋ using System; using System.Text; using static ..
[C#]๋ฌธ์์ด ์ถ๋ ฅ ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ
[C#] string format, ๋ฌธ์์ด ๋ณด๊ฐ($)์ ์ด์ฉํ ๋ฌธ์์ด ์ถ๋ ฅ๋ฐฉ๋ฒ (tistory.com) [C#] string format, ๋ฌธ์์ด ๋ณด๊ฐ($)์ ์ด์ฉํ ๋ฌธ์์ด ์ถ๋ ฅ๋ฐฉ๋ฒ ์๋ ํ์ธ์. BlockDMask ์ ๋๋ค. ์ค๋ ๊ณต๋ถํ ๋ด์ฉ์ C#์ string ์ถ๋ ฅ ๋ฐฉ๋ฒ์ ๋๋ค. C#์์๋ string์ ์ถ๋ ฅํ๋ ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์กด์ฌํ๋๋ฐ์, ๊ทธ๋ฅ ์ถ๋ ฅํ๋ ๋ฐฉ๋ฒ, format์ ์ด์ฉํ ๋ฐฉ๋ฒ ๊ทธ๋ฆฌ๊ณ ๋ฌธ์์ด blockdmask.tistory.com 1. using System; using System.Collections.Generic; using System.Text; using static System.Console; namespace Hello { class MainApp { static void Ma..