분류 전체보기 93

Call by reference(참조에 의한 호출)와 Call by value(값에 의한 호출)

함수 호출 방법은 프로그래밍에서 중요한 개념 중 하나입니다. C#에서는 매개변수 전달 방식으로 Call by value와 Call by reference 두 가지 방식을 지원합니다. 이번 글에서는 Call by reference와 Call by value에 대해 각각 설명하고 예시 코드를 통해 비교해보겠습니다. Call by value(값에 의한 호출) Call by value는 함수 호출 시 인자의 값을 복사하여 함수에 전달합니다. 함수 내부에서 매개변수의 값을 변경해도 호출자에게는 영향을 주지 않습니다. 이는 매개변수의 값이 함수 내부에서만 사용되기 때문입니다. 예시 코드: class Program { static void AddOne(int x) { x++; } static void Main(str..

C# 2023.03.07

얕은 복사 (Shallow Copy) 와 깊은 복사 (Deep Copy)

C#에서 객체를 복사하는 방법에는 얕은 복사와 깊은 복사 두 가지가 있습니다. 얕은 복사는 객체의 참조를 복사하여 같은 객체를 참조하는 경우가 있어 원본 객체와 복사본의 값이 공유될 수 있습니다. 반면, 깊은 복사는 객체의 모든 내용을 복사하여 원본 객체와는 독립적인 새로운 객체를 만듭니다. 얕은 복사 (Shallow Copy) 얕은 복사(Shallow Copy)는 객체의 참조만 복사하여 같은 객체를 참조하게 합니다. 따라서 원본 객체나 복사본 중 하나를 수정하면 다른 객체도 영향을 받을 수 있습니다. 아래는 얕은 복사를 수행하는 예시 코드입니다. class MyClass { public int[] arr; public MyClass(int[] arr) { this.arr = arr; } } MyClas..

C# 2023.03.07

인터페이스(Interface)와 추상 클래스(Abstract class)의 차이

인터페이스(Interface)와 추상 클래스(Abstract class)는 객체 지향 프로그래밍에서 다형성을 구현하는 방법 중 두 가지입니다. 인터페이스 ( Interface ) 인터페이스는 클래스가 구현해야 하는 동작(메서드)의 목록을 정의합니다. 인터페이스를 사용하여 다른 클래스와의 상호 작용을 정의할 수 있습니다. 인터페이스는 다중 상속을 지원하므로 클래스가 여러 개의 인터페이스를 구현할 수 있습니다. 인터페이스는 클래스의 기본 동작을 제공하지 않으므로 인터페이스를 구현하는 클래스는 모든 메서드를 정의해야 합니다. // IAnimal 인터페이스 정의 public interface IAnimal { void MakeSound(); } // Dog 클래스, IAnimal 인터페이스 구현 public c..

C# 2023.03.05