22.07.14 (1~7์ฐจ์)
[C#์ ์ญ์ฌ]
: C์ธ์ด -> C++ -> C#
C์ธ์ด์์ ๋ถ์กฑํ๋ OOP(๊ฐ์ฒด์งํฅ)๋ฅผ ์ถ๊ฐํด์ C++๋ฅผ ๋ง๋ฌ.
Window ์ด์์ฒด์ , Office ํ๋ก๊ทธ๋จ, Adobe ์ฌ์ ํ๋ก๊ทธ๋จ๋ค์ด C++๋ก ๋ง๋ค์ด์ง.
C#: C++์ธ์ด๋ฅผ ๋ฐ์ ์ํจ ์ธ์ด. Microsoft์ฌ์ Anders Hejisberg๊ฐ ๊ฐ๋ฐ. .NET Framework์ ์ต์ ํ๋ ์ธ์ด. (์ธํฐ๋ท ์๋น์ค๋ฅผ ์ฝ๊ฒ ๊ฐ๋ฐํ ์ ์๋๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ณตํด์ฃผ๋ ํ๋ก๊ทธ๋จ์ ์๋ฏธํ๋ .NET๋ Microsoft์ฌ๊ฐ ๋ง๋ฌ)
[4~5์ฐจ์ C# ๋ฐ์ดํฐ ํ์ ]
bool: True or False
- ์ ์ํ
byte: 8๋นํธ. unsigned ์ ์ํ (integer)
sbyte: 8๋นํธ signed ์ ์ํ
(u)short: 16๋นํธ (un)signed ์ ์ํ
(u)int: 32๋นํธ (un)signed ์ ์ํ <- System.Int32
(u)long: 64๋นํธ (un)signed ์ ์ํ
- ์ค์ํ
float: 32๋นํธ ์ค์ํ
double: 64๋นํธ ์ค์ํ <System.Double
decimal: 128๋นํธ ์ค์ํ
- ๋ฌธ์์ดํ
char: 16๋นํธ ์ ๋์ฝ๋ ๋ฌธ์
string: ์ ๋์ฝ๋ ๋ฌธ์์ด <- System.String
[๋ฐ์ดํฐํ์ ์ต๋๊ฐ ํ์ธํ๋ ๋ฒ]
int aa = int.MaxValue; -> 2147483648
int aa_ = int.MinValue; -> -2147483647
longํ: -9223372036854775808 ~ 9223372036854775807
[Literal ๋ฆฌํฐ๋ด ๋ฐ์ดํฐ]
: 123, True, "AGC" ์ ๊ฐ์ ๊ฐ๋ค์ Literal ์ด๋ผ ํ๋ค.
- ๋ฆฌํฐ๋ด์ ํ์(ํ์ ): 123(int ๋ฆฌํฐ๋ด), 11.11(double ๋ฆฌํฐ๋ด), "B"(string ๋ฆฌํฐ๋ด), 'b'(char ๋ฆฌํฐ๋ด), True(bool ๋ฆฌํฐ๋ด) ์ด๋ผ๊ณ ํํํ๋ค.
[C# ์ปดํ์ผ๋ฌ]
: C# ์ปดํ์ผ๋ฌ๊ฐ int, double, char, string, bool ๋ฐ์ดํฐ ํ์ ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ทธ์ ํด๋นํ๋ ๊ฐ์ ํ ๋นํ๋ค.
cf) ๋ฐ์ดํฐ ํ์ ๋ณ ์ ๋ฏธ์ฌ(Suffix)๋ฅผ ์ฌ์ฉํด์ ํน์ ๋ฐ์ดํฐ ํ์ ์ ์ง์ ํ ์ ์๋ค.
์ ๋ฏธ์ด: L(longํ), U(unsigned intํ), UL(unsigned longํ), F(floatํ), D(doubleํ), M(decimalํ)
ex) long l = 12322L; ์ด๋ฉด long ํ์ ์ค์๋ง l ๋ณ์์ ๋ฃ๋๋ค๋ ๋ป.
[6์ฐจ์ - Null๊ณผ Nullable ํ์ ์ ์ดํด]
NULL: ์ด๋ค ๋ณ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์์ง ์์ ๋ ํํํ๋ ๋ฐฉ๋ฒ. ์ฆ, ๋ฉ๋ชจ๋ฆฌ ์์ ์ด๋ค ๋ฐ์ดํฐ๋ ๊ฐ๊ณ ์์ง ์์ ๋ ์ฌ์ฉํ๋ ํค์๋.
Null์ ๊ฐ์ง ์ ์๋ ๋ฐ์ดํฐ ํ์ (Reference ํ์ )์ด ๋ฐ๋ก ์๋ค. ๋ํ์ ์ผ๋ก string ํ์ .
Null์ ๊ฐ์ง ์ ์๋ ๋ฐ์ดํฐ ํ์ (Value ํ์ ): int, DateTime...
Nullable: HasValue์ Value ์์ฑ์ ๊ฐ๊ณ ์๋ค. ๊ฐ์ ๊ฐ๊ณ ์์ผ๋ฉด true, ๊ฐ์ ๊ฐ๊ณ ์์ง ์์ผ๋ฉด false.
Nullable ํ์์ ์ ์ฉํ๋ฉด ์ ์ ๊ฐ์ Value Type๋ null ๊ฐ์ ๊ฐ์ง ์ ์๋ค.
์ฆ, ๊ฐ์ด ๋น์ด์๋ Nullable Type์ ๋ณ์๋ฅผ ์ ์ธํ ์ ์๋ค.
"?" ํค์๋ ์ฌ์ฉ.
ex) int? a = null; ์ด๋ ๊ฒ
[7์ฐจ์ - Value Type๊ณผ Reference Type์ ์ดํด]
- ๊ตฌ์กฐ์ฒด: Value Type(๊ฐ ํ์: ๋ณ์๊ฐ ๊ฐ์ ๋ด๋ ๋ฐ์ดํฐ ํ์)
- ํด๋์ค: Reference Type(์ฐธ์กฐ ํ์: ๋ณ์๊ฐ ์ค์ ๊ฐ ๋์ ์ ๊ฐ์ด ์๋ ์์น๋ฅผ ๋ด๋ ๋ฐ์ดํฐ ํ์)
* ๋ฉ๋ชจ๋ฆฌ ์์ญ: Stack / Heap
1) Stack
๊ฐ ํ์๊ณผ ๊ด๋ จ
} ๋ธ๋ก ๋์ ๋ง๋๋ฉด ์์ฑ๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ชจ๋ ์ฌ๋ผ์ง๋ค. ์์์ ๋ฉ๋ชจ๋ฆฌ ๋น์.
} ๋ธ๋ก์ด ๋๋๋ ๊ทธ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณ ์๊ณ ์ถ์ผ๋ฉด Heap ์์ญ์ ์ฌ์ฉํด์ผ ํ๋ค.
2) Heap
์ฐธ์กฐ ํ์๊ณผ ๊ด๋ จ
๋ฉ๋ชจ๋ฆฌ๋ฅผ ์์์ ์ง์ฐ์ง ๋ชปํด์ ๋ชจ๋ ์ฐธ์กฐ๋ ํ ๊ฐ๋น์ง ์ปฌ๋ ํฐ๋ฅผ ์ฌ์ฉํด์ ์ง์.
Object ํ์์ ๋ณ์
cf) ์ฐธ์กฐ ํ์์ ํ๊ณผ ์คํ์ ํจ๊ป ์ด์ฉํ๋ค.
Heap ์์ญ์ ์ค์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ
Stack ์์ญ์๋ ์ค์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋์ด ์๋ Heap์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ ์ ์ฅ๋๋ค.
๊ทธ๋ ๊ฒ ๋๋ฉด } ์ ๋ง๋์ Stack ์์ญ์ ๋ ๋ผ๊ฐ๋ Heap ์์ญ์ ๋ ๋ผ๊ฐ์ง ์์์ ๋ฐ์ดํฐ๋ฅผ ๋ณด์กดํ ์ ์๋ค.
22.07.15 (8~9์ฐจ์)
[8์ฐจ์ - Boxing๊ณผ UnBoxing์ ๊ฐ๋ ]
* Object ํ์
- C#์ ๋ชจ๋ ๋ฐ์ดํฐ(int, string, float ๋ฑ)๋ฅผ ๋ค๋ฃฐ ์ ์๋ Object ํ์์ ์ ๊ณตํ๊ณ ์๋ค.
์ฆ, C#์ ์ปดํ์ผ๋ฌ๋ ์ด๋ค ํ์์ ๋ฐ์ดํฐ๋ผ๋ Object ํ์์ ๋ด์ ์ฒ๋ฆฌํ ์ ์๊ฒ ํ๊ณ ์๋ค.
ex)
object obj1 = 111;
object obj2 = 3.141212121212m; //decimal ํํ์ ๋ฐ์ดํฐ๋ฅผ object์ ๋ฃ์ ๊ฒ.
object obj3 = true;
object obj4 = "ํ์ด Csharp!";
object obj1 = 111;
111์ intํ ๊ฐ์ด๊ณ obj1์ objectํ์ ์ฐธ์กฐํ์์ ๋ณ์์ด๋ค. ๋ฐ๋ผ์ 111์ด๋ผ๋ ๊ฐ์ Heap ์ ์ ์ฅ๋๋ค. objectํ์ด ์ฐธ์กฐํ์์ด๋๊น.
์ด ๋, boxing ๊ธฐ๋ฅ์ ํตํด Heap์ ์ ์ฅ๋๋ค. ์ ์ ๊ทธ ์์ฒด๋ Heap ์ ์ ์ฅ๋ ์ ์์ผ๋ฏ๋ก 111์ด Box์ ๋ด๊ฒจ์ Heap์ ์ ์ฅ๋๋ ๊ฒ.
UnBoxing์ Boxing ๋์ด ์๋ ๊ฐ์ ๊บผ๋ด ๊ฐํ์(Value Type) ๋ณ์์ ์ ์ฅํ๋ ๊ณผ์ ์ ์๋ฏธํ๋ค.
ex)
int x = 111;
object obj1 = (object)x; // x์ ๋ด๊ฒจ์๋ ๊ฐ์ Boxingํด์ Heap์ ์ ์ฅ.
int y = (int)obj1; // UnBoxing ํ์ Stack์ ์ ์ฅ.
[9์ฐจ์ ๋ฐ์ดํฐ ํ๋ณํ(Type Conversion)]
: ์๊ดํธ๊ฐ () ์ปจ๋ฒ์ ์ฐ์ฐ์.
: ๋ฐ์ดํฐ ํ์ ๋ณํ์ด๋. ๋ณ์๋ฅผ ๋ค๋ฅธ ๋ฐ์ดํฐ ํ์์ ์ฎ๊ธฐ๋ ๊ฒ.
* ํ๋ณํ Case. ํ๋ณํํ ๋ ๋ฐ์ดํฐ ์์ค์ ๋ง์.
1) ํฌ๊ธฐ๊ฐ ์๋ก ๋ค๋ฅธ ์ ์ํ ์ฌ์ด์ ํ๋ณํ
sbyte a = 127;
Console.write(sbyte.MinValue); //-128
Console.write(" ~ ");
Console.writeLine(sbyte.MaxValue); //127
Console.WriteLine(a); // 127
int aa = (int)a;
Console.WriteLine(aa); // 127. ์ ์. sbyte ๋ฒ์๋ด์ ๋ค์ด์ด.
int x = 128;
Console.WriteLine(x); // 128
sbyte xx =(sbyte)x;
Console.WriteLine(xx); // -128. ์ค๋ฒํ๋ก์ฐ. ์๋ฆฟ์๊ฐ ๋์ด๊ฐ๋ฉฐ ๋ถํธ๋นํธ์ ์ํฅ์ผ๋ก ์๊ธฐ๋ ํ์.
2) ํฌ๊ธฐ๊ฐ ์๋ก ๋ค๋ฅธ ๋ถ๋์์์ ์ฌ์ด์ ํ๋ณํ
float f = 79.6777f;
Console.WriteLine("f: {0}", f); //79.6777
double d = (double)f;
Console.WriteLine("d: {0}", d); //79.6776962280273
double dd = 0.11212121212f;
float ff = (float)dd;
Console.WriteLine("ff: {0}", ff); // 0.1121212. ๋ฐ์ดํฐ ์์ค๋ฌ์.
์ญ์ง์๋ฅผ ์ด์ง์๋ก ๋ฐ๊ฟ ๋, ์ญ์ง์์ ์์์ ์๋ฆฌ๊ฐ ์ด์ง์๋ก ๋ณํํ๋ค๊ฐ ๋ค์ 10์ง์๋ก ๋ณํํ๋ค. ์ด์ง์๊ฐ ์์์ ๊ณ์ฐ์ด ์๋ฒฝํ์ง ์๊ธฐ ๋๋ฌธ์, ์ด ๊ณผ์ ์์ ๋ฐ์ดํฐ ์์ค์ด ๋ ๊ฒ.
22.07.15 (10์ฐจ์)
3) ๋ถํธ์๋ ์ ์ํ๊ณผ ๋ถํธ์๋ ์ ์ํ ์ฌ์ด์ ํ๋ณํ
byte(๋ถํธ์์), sbyte(๋ถํธ์์)
short(๋ถํธ์์), ushort(๋ถํธ์์)
int(๋ถํธ์์), uint(๋ถํธ์์)
byte(8๋นํธ): 0 ~ 255
sbyte(8๋นํธ): -127 ~ 128
ex)
๋ถํธ๊ฐ ์๋ ๊ฒฝ์ฐ,
0000 0000
0000 0001 = 1
0000 0011 = 3
0000 0111 = 7
0000 1111 = 15
...
1111 1111 = 255
๋ถํธ๊ฐ ์๋ ๊ฒฝ์ฐ,
0111 1111 = 127
0000 0011 = 3
0000 0111 = 7
0000 1111 = 15
...
0111 1111 = 127
1111 1111 = -1
: 8์๋ฆฌ ๋นํธ์์ ๋งจ ์ฒซ๋ฒ์งธ ๋นํธ๋ ๋ถํธ๋นํธ์ด๋ฏ๋ก ์ต๋๊ฐ์ 2^6 + 2^5 + 2^4 + 2^3 + 2^2 + 2^1 + 2^0 = 127๊น์ง ํํ ๊ฐ๋ฅํ๋ค.
: ์์๋ 2์ ๋ณด์๋ก ํํ๋๊ธฐ ๋๋ฌธ์ 1111 1111 ์ -127์ด ์๋๋ผ -1์ด๋ค.
** 2์ ๋ณด์ํํ๋ฒ
0000 0001 ์ 2์ ๋ณด์๋ฅผ ๊ตฌํด๋ณด์. 1) 0000 0001์ ๋นํธ ๋ฐ์ ์์ผ์ค๋ค. 1111 1110 2) ๋ฐ์ ๋ ๋นํธ์ 1์ ๋ํ๋ค. 1111 1110 + 0000 0001 ใ กใ กใ กใ กใ กใ กใ ก 1111 1111 => 0000 0001์ 2์ ๋ณด์ = 1111 1111 => -1 |
2์ ๋ณด์๋ก ํํ์ ์ํ๋ค๋ฉด,
0000 0001
+ 1111 1111
ใ กใ กใ กใ กใ กใ กใ ก
0000 0000 (1์ด ํ์๋ฆฌ ๋์ด๊ฐ์ 8์๋ฆฌ๋ก ํํํ ์ ์๊ธฐ ๋๋ฌธ์ 0์ด ๋๋ค. ๊ฐ์ด ๋ฌ๋ผ์ง.)
๋ฐ๋ผ์ ๋ถํธ๊ฐ ์๋ ๊ฒฝ์ฐ 1111 1111 ์ -1 ์ด๋ค.
4) ์ค์ํ๊ณผ ์ ์ํ ์ฌ์ด์ ํ๋ณํ
float f = 4.72134f; // 4.72134
int aa = (int)f; // 4 (์์์ ์๋ฆฌ ๊ฑ ๋ฒ๋ฆผ)
5) ๋ฌธ์์ด๊ณผ ์ซ์ ์ฌ์ด์ ํ๋ณํ
๋ฌธ์์ด -> ์ซ์: ToString() ์ด์ฉ
string str1 = "12222";
int num1 = (int)str1; // error!
int num2 = 12222;
string str2 = (string)num2; // error!
int num3 = 343434;
string str3 = num3.ToString(); // 343434. ok!
float num4 = 1212.1212f;
string str4 = num4.ToString(); // 1212.12. ok!
์ซ์ -> ๋ฌธ์์ด: Parse ์ด์ฉ
string str1 = "121212"
int num1 = int.Parse(str1); // 121212
string str2 = "1.1234562"
float num1 = float.Parse(str1); // 1.123456 -> ์ ์ํ 1์๋ฆฌ ํฌํจํด์ 7์๋ฆฌ ์๋ง ํํ ๊ฐ๋ฅ. ๊ทธ ๋ค ์ซ์๋ ๋ฒ๋ฆผ.
22.07.21 (11~13์ฐจ์)
[11์ฐจ์ - ์์(Constants) / 12์ฐจ์ - enumํ์ ์ดํด]
* ๋ณ์: ๋ด๊ณ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ผ๋ง๋ ์ง ๋ณ๊ฒฝํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ๊ณต๊ฐ
* ์์: ๋ด๊ณ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ๋ฐ๊ฟ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ. const ๋ผ๋ ํค์๋๋ฅผ ์ฌ์ฉํ๋ค.
* ์ด๊ฑฐํ ์์(enum)
enum ์ด๊ฑฐํ์๋ช : ์๋ฃํ {์์1, ์์2, ์์3}
์ ์ํ(byte, sbyte, short, ushort, int, unit, long, char) ์๋ฃํ๋ง ์ฌ์ฉ๋๋ค
์๋ฃํ์ ์๋ตํ์ ๊ฒฝ์ฐ int ํ์ผ๋ก ์ค์ ๋๋ค.
ex)
enum City { Seoul, Incheon, Daegu, Daejeon }
์ด๊ฑฐํ์ ์์ ์ ์ธ๋ ์์๋ค์ด ์ด๋ค ๊ฐ๋ ํ ๋น ๋์ง ์์์ ๊ฒฝ์ฐ์๋
์ฒซ๋ฒ์งธ ์์ ์์์๋ 0์ด๋ผ๋ ๊ฐ์ด ํ ๋น๋จ. ๊ทธ๋ฆฌ๊ณ ๊ทธ ๋ค์ ์์์๋ 1, 2, 3...
์ปดํ์ผ๋ฌ๊ฐ ์๋์ผ๋ก Counting ํด์ ํ ๋น ํจ.
22.07.22(14์ฐจ์)
*๋นํธ์ฐ์ฐ์(์ฌํํธ, &, |, ^)
1) ์ฌํํธ ์ฐ์ฐ
int aa = 1, bb = 2, cc = 3;
Console.WriteLine("{0:x8}", aa);//0001. 16์ง์ 8์๋ฆฌ๋ฅผ ํํํ๋ ๋ฒ. x๊ฐ 16์ง์๋ฅผ ๋ํ๋.
Console.WriteLine("{0:D3} 0x{0:X8}", aa);//001 0x00000001. (00000001 = 1 ์ด๋ผ์)
Console.WriteLine("{0:D3} 0x{0:X8}", aa << 1);//002 0x00000002. (00000010 = 2 ๋ผ์)
Console.WriteLine("{0:D3} 0x{0:X8}", aa << 5);//032 0x00000020.(00100000 = 32 ๋ผ์)
Console.WriteLine("aa:{0} bb:{1} cc:{2}", aa, bb, cc); //ํน์ ํ์์ ๋ง์ถฐ ์ถ๋ ฅํ๋ ํฌ๋งทํ
(Formatting) ๊ธฐ๋ฅ
int a = 100;
Console.WriteLine("{0:D}:", cc); //3
Console.WriteLine("{0:D5}", cc); //00003
Console.WriteLine("{0:D5}:", a); //00100
cf) 16์ง์๋ 4๋นํธ ํ์. 0~15
22.07.22(15~19์ฐจ์)
*๋นํธ์ฐ์ฐ
: &(AND์ฐ์ฐ), |(OR์ฐ์ฐ), ^(XOR์ฐ์ฐ), ~(๋ณด์์ฐ์ฐ)
int x = 9;
int y = 10;
Console.WriteLine(x & y); //8. 1001 ๊ณผ 1010 ์ AND ์ฐ์ฐ
Console.WriteLine(x | y); //11. 1001 ๊ณผ 1010 ์ OR ์ฐ์ฐ
Console.WriteLine(x ^ y); //3. 1001 ๊ณผ 1010 ์ XOR ์ฐ์ฐ
int xx = 255;
Console.WriteLine("{0} 0x{0:x8} {1} 0x{1:x8}", xx, ~xx); // 255 0x000000FF -256 0xFFFFFF00
0 1111 1111(255)์ ๋ณด์์ฐ์ฐํ๋ฉด 1 0000 0000(-256)์ด ๋๋ค.
์ 1 0000 0000์ด -255๊ฐ ์๋๋ผ -256์ผ๊น?
๊ทธ ์ด์ ๋ 256์ธ 1 0000 0000 ์ 2์ ๋ณด์๋ฅผ ๊ตฌํด๋ณด๋ฉด ์ ์ ์๊ฒ์ง.
<2์ ๋ณด์ ๊ตฌํ๋ ๋ฒ>
๋จผ์ 256์ธ 1 0000 0000 ๋ฅผ ๋นํธ๋ฐ์ ์์ผ์ 1์ ๋ณด์๋ฅผ ๊ตฌํ๋ค. => 0 11111 11111
๊ทธ๋ฆฌ๊ณ 0 11111 11111 ์ 1์ ๋ํ๋ค. => 1 0000 0000.
์ฆ, 1 0000 0000(256)์ 2์ ๋ณด์๊ฐ 1 0000 0000 ์ด๋ฏ๋ก 1 0000 0000์ 10์ง์ ํํ์์ -256์ด ๋๋ ๊ฒ์ด๋ค.
[18์ฐจ์ - ๋ฐฐ์ด๊ณผ foreach๋ฌธ]
* ๋ฐฐ์ด(Array): ์ผ๋ จ์ ๋์ผํ ๋ฐ์ดํฐ ํ์ ์์๋ค๋ก ๊ตฌ์ฑ๋ ๋ฐ์ดํฐ ์งํฉ
1) 1์ฐจ์ ๋ฐฐ์ด ์ ์ธ
๋ฐ์ดํฐํ์[ ] ๋ฐฐ์ด์ด๋ฆ = new ๋ฐ์ดํฐํ์[๋ฐฐ์ด์ํฌ๊ธฐ];
int arr[] = new int[5];
2) 2์ฐจ์ ๋ฐฐ์ด ์ ์ธ
๋ฐ์ดํฐํ์[ , ] ๋ฐฐ์ด์ด๋ฆ = new ๋ฐ์ดํฐํ์ [2์ฐจ์ํฌ๊ธฐ, 1์ฐจ์ํฌ๊ธฐ]
int[,] arr = {{1,10,100}, {5,50,500}};
* GetLength(): ๋ฐฐ์ด์์ ์ง์ ํ ์ฐจ์์ ๊ธธ์ด๋ฅผ ๊ตฌํ๋ ๋ฉ์๋
int[,] arr = {{1,10,100},{5,50,500}};
for(int i = 0; i<arr.GetLength(0); i++){
for(int j = 0; j<arr.GetLength(1); j++){
}
}
: [,] ์์ ์์ด 2์ฐจ์ ๊ธธ์ด. ๋ค๊ฐ 1์ฐจ์ ๊ธธ์ด ์ด๋ฏ๋ก ํน, ์ด ๊ธธ์ด๋ก ๋ณด๋ฉด ๋๋ค.
* foreach๋ฌธ
foreach(๋ฐ์ดํฐํ์ ๋ณ์๋ช
in ๋ฐฐ์ด/์ปฌ๋ ์
) ๋ฐ๋ณต์ฝ๋ |
22.07.27(20~25์ฐจ์) ๋!
3) ๊ฐ๋ณ๋ฐฐ์ด(Jagged Array) ์ ์ธ
๋ฐ์ดํฐ ํ์[][] ๋ฐฐ์ด์ด๋ฆ = new ๋ฐ์ดํฐํ์[๊ฐ๋ณ๋ฐฐ์ด์ ํฌ๊ธฐ][];
****๊ฐ๋ณ๋ฐฐ์ด์ ํฌ๊ธฐ๋ ํ์์ ์ผ๋ก ๋ค์ด๊ฐ์ผ ํจ !
์์)
int[][] arr = new int[3][];
arr[0] = new int[5]{1,2,3,4,5};
arr[1] = new int[3]{11,22,33};
arr[2] = new int[2]{20,30};
int[][] arr2 = new int[2][];
arr2[0] = new int[]{1,22,333,4444,55555};
//ํ์ ์ค์ ํด๋๊ณ ์ด์ ๋ง๋๋ก ๋ง๋ค ์ ์์
int[][] jArr = new int[3][];
jArr[0] = new int[4] {1, 2, 3, 4};
jArr[1] = new int[] {10, 11, 12, 22, 33, 44};
jArr[2] = new int[] {20, 30};
foreach (int[] arr in jArr){
Console.WriteLine("Length: {0}, ", arr.Length); //4, 6, 2 ๋์ด
}
[22์ฐจ์ - ์ฐธ์กฐ์ ์ํ ๋งค๊ฐ ๋ณ์ ์ ๋ฌ]
1) ๊ฐ์ผ๋ก ์ ๋ฌํ ๋
: a, b ๋ฅผ ๊ฐ์ผ๋ก ์ ๋ฌํ๋ฉด a, b ๋ณ์๊ฐ ๋ฌ๋ผ์ง๋๊ฒ ์๋๋ผ x, y๋ผ๋ ๋ณ์๋ฅผ ์๋ก ๋ง๋ ๋ค. ์๋ก์ด ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์ ํ ๋น๋๋ค.
2) ์ฐธ์กฐ๋ก ์ ๋ฌํ ๋: ref ํค์๋
static void Main(string[] args){
int aa = 100;
int bb = 111;
Console.WriteLine("aa: {0}, bb: {1}", aa, bb); // 100, 111
Swap(ref aa, ref bb);
Console.WriteLine("aa: {0}, bb: {1}", aa, bb); // 111, 100
}
static void Swap(ref int x, ref int y){
int temp = x;
x = y;
y = temp;
}
: x, y ๊ฐ aa, bb ๋ฅผ ์ฐธ์กฐํ๋ค.
[23์ฐจ์ - ์ค๋ฒ๋ก๋ฉ, ํ๋ผ๋ฏธํฐ ๋ํด๋ ๊ฐ ์ฃผ๊ธฐ]
* ๋ฉ์๋ ์ค๋ฒ๋ก๋ฉ: ๊ฐ์ ๋ฉ์๋ ์ด๋ฆ์ธ๋ฐ ๋งค๊ฐ๋ณ์(๋งค๊ฐ๋ณ์ ์, ๋งค๊ฐ๋ณ์ ํ์ )๋ฅผ ๋ฌ๋ฆฌ ์ ์ธํด์ ๋ง๋๋ ๊ฒ.
* ํ๋ผ๋ฏธํฐ์ ๊ธฐ๋ณธ๊ฐ ์ ์ฉํ๊ธฐ: void aaa(int a = 0, int b = 1){ ... }
[24์ฐจ์ - ๋ก์ปฌํจ์]
* var ํค์๋: ๋ฐ์ดํฐ ํ์์ ์์์ C#์ปดํ์ผ๋ฌ๊ฐ ์ง์ ํ๋ค.
๋ก์ปฌํจ์: ๋ฉ์๋ ์์์ ์ ์ธ๋ ํน๋ณ ํจ์. ๋ฉ์๋ ์์์ ์ ์ธ๋์๊ธฐ ๋๋ฌธ์ ํด๋์ค ๋ฉค๋ฒ๊ฐ ์๋๋ค. ํจ์๋ผ๊ณ ๋ถ๋ฅธ๋ค.
class Program{
static string ToLowerStar(string str){
var arr = str.ToCharArray();
for(int i = 0; i<arr.Length; i++){
arr[i] = ToLowerChar(i);
}
}
char ToLowerChar(int i){
if(arr[i] < 65 || arr[i] > 90)
return arr[i];
else
return (char){arr[i] + 32);
}
return new string(arr);
}
[25์ฐจ์ - ํด๋์ค์ ๊ฐ์ฒด]
OOP: Object Oriented Programing
*๊ฐ์ฒด๋ ์์ฑ(๋ช ์ฌ), ๊ธฐ๋ฅ(๋์ฌ)์ ๊ฐ๊ณ ํํํ๋ค. -> ๊ฐ์ฒด: ํด๋์ค. ์์ฑ: ๋ณ์, ๊ธฐ๋ฅ: ํจ์...
'๐ฎ Unity Study > C#' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C#] Action ๊ณผ Func (feat. Delegate, callback) (0) | 2023.08.16 |
---|---|
[C#] List ๊ฐ์ Enumerable ํด๋์ค์์ ์ฌ์ฉํ ์ ์๋ ํจ์๋ค (0) | 2023.04.26 |
C# Code Convention (0) | 2022.10.13 |
[KLA ๋ฉํฐ์บ ํผ์ค] C#7.0 ์ ๋๋ก ๋ฐฐ์ฐ๊ธฐ Part.2(์ ๋ฌธ2) (0) | 2022.08.04 |
[C#] string.Format() ์ฌ์ฉ๋ฒ (feat. ์ซ์ ์์ 0์ฑ์ฐ๊ธฐ, ์์์ ์๋ *์๋ฆฌ๊น์ง ํ๊ธฐํ๊ธฐ) (0) | 2022.05.10 |