728x90 분류 전체보기64 [C#] 깊은 복사 / 얕은 복사 (Deep Copy / Shallow Copy) 깊은 복사(Deep Copy)깊은 복사는 객체의 값을 완전히 새로운 메모리 공간에 복사하는 방식이다. 따라서 원본 객체과 복사된 객체가 독립적으로 존재하고, 어느 한 쪽에서 변경이 일어나도 다른 쪽에 영향을 미치지 않는다.예시public struct PersonStruct{ public string Name;}PersonStruct person1 = new PersonStruct { Name = "Tom" };PersonStruct person2 = person1; // 값 복사이므로 깊은 복사person2.Name = "Bob"; // 깊은 복사이므로 복사해온 객체에 대해 영향 XConsole.WriteLine(person1.Name); // 출력 : AliceConsole.WriteLine(perso.. 2024. 11. 6. [C#] Virtual, Abstract, Interface virtual역할 : 메서드, 속성(property), 이벤트 등을 자식 클래스에서 재정의할 수 있도록 허용하는 키워드이다.사용 방법 : 부모 클래스에서 메서드나 속성에 virtual을 붙여서 정의하면, 자식 클래스에서 override 키워드를 통해 재정의를 할 수 있다.특징 : virtual은 선택적 재정의를 허용하므로 반드시 재정의를 할 필요는 없다.public class Parent{ public virtual void message() { Console.WriteLine("Hi, I'm Parent."); }}public class Child : Parent{ public override void message() { Console.WriteLine("Hi, I'm .. 2024. 11. 5. [C#] this C#에서 this는 클래스나 구조체의 현재 인스턴스를 참고하는 데 사용된다.this를 사용하면 클래스 내부에서 해당 인스턴스의 멤버 변수나 메소드에 접근할 수 있으며, 코드의 가독성을 높이고 현재 인스턴스의 컨텍스트에서 작업을 명확하게 수행할 수 있다.this의 주요 용도1. 현재 인스턴스의 멤버에 접근 : 클래스 내부의 메서드나 생성자에서 클래스의 필드, 프로퍼티, 다른 메서드에 접근할 때 this 키워드를 사용한다.메서드의 매개변수 이름과 클래스의 필드 이름이 같을 때, 필드와 매개변수를 구분하기 위해 this를 사용할 수 있다.public class Person{ private string name; private int age; public Person(string name, i.. 2024. 11. 5. [C#] object와 var C#에서 object와 var 모두 명시적인 타입 지정 없이 변수 선언이 가능한데, 이 둘이 어떤 차이가 있는지 정리하려 한다.object- object는 .NET Framework에서 제공하는 어떤 데이터든 다룰 수 있는 데이터 형식이다. object는 기본 데이터 형식(int, float 등) 뿐만 아니라 모든 복합 데이터 형식(구조체, 클래스, 배열 등), 사용자 정의 형식까지도 object 형식으로부터 상속받도록 개발되었다. - object는 박싱(boxing)과 언박싱(unboxing)을 통해 값을 저장한다. 값을 박싱하여 heap에 저장하고, stack에 해당 값의 주소를 저장하고 있다가 필요할 때마다 참조하여 쓰는 방식이다. 만약 참조하고 있는 값과 타입이 변경되어도, 기존의 참조를 제거하고.. 2024. 11. 4. [C#] C#의 Collection C++에 STL이 있다면 C#에는 Collection이 있다고 할 수 있다. STL을 정리한 김에 Collection도 같이 정리하려 한다.컬렉션(Collection)이란?- 컬렉션은 동일 타입의 객체를 여러 개 보관할 수 있는 클래스를 말한다.- 배열, linked list, tree, hash table 등의 자료구조와 데이터 관리 및 조작을 쉽게 하기 위한 다양한 를 구현한 클래스이다.- C++의 STL의 Container와 같은 기능을 한다고 볼 수 있다.- 어떤 타입을 보관할 것인가에 따라 여러 namespace 안에 정의되어 있다.System.Collections(비제네릭 컬렉션) : 모든 타입을 obejct로 저장하여 다양한 타입을 혼합해서 사용할 수 있다. 타입 안정성이 좋지 않고, 값을 .. 2024. 11. 4. [C++] C++의 STL C++로 알고리즘 문제를 풀다보면 자연스럽게 STL을 쓰게 되는데 이 STL이 어떻게 구성되어있는지 글을 정리해 보려 한다.STL이란?- STL은 Standard Template Library의 약자로, 여러 자료 구조, 함수, 알고리즘 등을 쓰기 쉽게 정형화하여 라이브러리화 해둔 것이다. - STL은 모두 컨테이너로 정의되어 있고 크게 4개의 라이브러리로 나뉜다.컨테이너 라이브러리(Container) : 자료구조를 사용할 수 있는 라이브러리로, 데이터를 저장하는 객체를 사용할 수 있다.반복자 라이브러리(Iterator) : iterator라 불리는 반복자가 정의되어 있는 라이브러리로, 컨테이너의 데이터 위치를 가리키는 포인터처럼 동작하는 객체이다.알고리즘 라이브러리(Algorithm) : 자주 사용하는.. 2024. 11. 3. 이전 1 2 3 4 5 6 ··· 11 다음 728x90