반응형 분류 전체보기505 C# 문법 - 복사(값)와 참조 1. 복사(값) // Copy 복사 struct Mage { public int hp; public int attack; } 구조체의 값은 스택(stack)에 할당된다. static void KillMage(Mage mage) { mage.hp = 0; } Mage mage; mage.hp = 100; mage.attack = 50; KillMage(mage); Console.WriteLine(mage.hp); mage의 복사값을 killMage에 보내줬기 때문에 mage.hp가 100인 것은 변하지 않는다. Mage mage2 = mage; mage2.hp = 0; Console.WriteLine($"mage 값 : {mage2.hp}"); mage와 mage2는 별도의 마법사이다. 2. 참조 // R.. 2023. 4. 10. C# 문법 - Generic, Generic Constraints, Where 1. Generic 제네릭 타입에서는 데이터 형식을 확정하지 않고 데이터 타입 자체를 Type Parameter로 정의한다. 일반적으로 로 작성한다. // Generic class -> T안에 어떤 타입을 넣어도 작동된다. class MyList { T[] arr = new T[10]; public T GetItem(int i) { return arr[i]; } } static void Test(T input) { } 제네릭 타입을 사용할 때는 클래스명과 데이터 타입을 지정해주면서 사용하면 된다. static void Main(string[] args) { Test(3); Test(3.0f); } 2. Generic Constraints Where이란? 특정 조건에만 대응되는 데이터 타입이 필요한 경우 .. 2023. 4. 10. C# 문법 - Object(박싱과 언박싱) Object 데이터 타입 모든 데이터 타입의 조상이다. 그러므로 값 형식 (int short) 및 참조 형식(struct, class)등이 Object의 상속 받는다. 그러므로 Object는 데이터 타입의 제한이 없으므로 편리하게 사용할 수 있다. 하지만 Object는 참조 타입으로 실행이 되기 때문에 무분별하게 사용하게 되면 메모리 낭비가 발생하게 된다. 01 boxing 쉽게 택배로 예를 들어보자 만약 유리병을 택배로 보내고 싶으면 유리병을 택배로 포장하고 택배 회사로 보내게된다. 여기에서 유리병은 값타입, 택배 포장은 참조타입으로 포장(박싱), 택배회사에 보냄은 참조 타입만 받는 매개변수에 전달이다. 값 형식을 object를 통해서 참조 형식으로 변환 // boxing int p = 123; // .. 2023. 4. 10. 백준 C# 10951 using System; using System.Text; namespace baek2 { class Program { static void Main(string[] args) { while(true) { string n_input = Console.ReadLine(); if (n_input == null) return; string[] input = n_input.Split(); int A = int.Parse(input[0]); int B = int.Parse(input[1]); Console.WriteLine(A+B); } } } } 2023. 4. 9. 백준 C# 10952 using System; using System.Text; namespace baek2 { class Program { static void Main(string[] args) { while(true) { string n_input = Console.ReadLine(); string[] input = n_input.Split(); int A = int.Parse(input[0]); int B = int.Parse(input[1]); if ((A == 0) && (B == 0)) return; Console.WriteLine(A+B); } } } } 2023. 4. 9. 백준 C# 2439 using System; using System.Text; namespace baek2 { class Program { static void Main(string[] args) { string n_input = Console.ReadLine(); int N = int.Parse(n_input); for (int i=1; i 2023. 4. 9. 이전 1 ··· 75 76 77 78 79 80 81 ··· 85 다음 반응형