728x90
반응형
SMALL

스마트한 개발 공부 39

[C#] Method에서 여러 개의 Return 값 받기

함수를 만들다 보면 1개의 함수에서 여러 개의 return값을 출력하고 싶을 때가 있다. 이런 경우에 사용할 수 있는 방법 몇 가지를 알아보자. 우선, 두개의 숫자를 더해서 합을 출력하는 함수를 만들었다고 해보자. static void Main(string[] args) { Console.WriteLine("두개의 숫자를 각각 입력:"); int.TryParse(Console.ReadLine(),out int num1); int.TryParse(Console.ReadLine(), out int num2); int sumNum = Calc(num1,num2); Console.WriteLine($"{num1}과 {num2}의 합은 {sumNum}이다"); } private static int Calc(int..

[C#] 변수를 상수형으로 만드는 방법 : readonly와 const

C#에서는 변수를 상수로 만드는 방법이 존재한다. 그 중에서 const와 readonly라는 한정자가 있다. const는 compile을 한 시점에 값을 확정하기 때문에, const 필드는 필드 선언에서만 초기화 될 수 있다. 반면에, readonly는 필드 선언과 임의 생성자에서 readonly 값을 여러 번 할당할 수 있다. 그래서 readonly 필드는 생성자를 만들 때 그에 따라 다른 값을 줄 수 있다. 1. const 예시 class ConPoint { const int x = 5; int y; public ConPoint(int x, int y) { this.y = y; } public override string ToString() //private 변수를 출력하기 위한 출력코드 { retu..

[C#] Struct 구조체

프로그램을 추상화 하기 위해서는 Class나 Struct가 필요하다. Class로 작성한 코드의 키워드를 struct로 바꿔도 코드가 실행되는 경우가 많다. Struct와 Class의 차이는 무엇일까? 1. Struct와 Class의 차이 구조체는 ValueType으로 함수 호출 방식이 call by value이다. 함수가 호출될 때, 똑같은 데이터를 갖는 인스턴스가 복사가 돼서 생성된다. 즉, 매개변수로 전달을 많이 할수록 메모리가 많이 사용된다. (메서드의 실행결과에 영향을 받지 않는다) 구조체는 인스턴스를 생성할 때 new 생성자를 호출할 수도 있고, 생성자와 상관없이 생성할 수도 있다. 구조체는 생성자를 정의해도 기본생성자가 무조건 추가생성 된다. 구조체는 생성자를 정의할 떄 모든 멤버에 대해서 ..

[C#] 상속과 interface(인터페이스) 그리고 abstract class(추상 클래스)

1. Class 상속 우리는 일상생활 속에서 어떤 공통적인 특징을 가지고 있고 특징이 공통된다면, 그 특징을 그대로 가져와서 다른 항목을 정의하는 데 사용하고는 한다. 일상적인 많은 객체들이 이러한 계층적인 관계를 이루고 있다. 차를 예로 들면 Tesla, Hyendai, BMW, Audi 4개의 차량이 있다고 해보자. 이들의 공통적인 특징은 Car라는 것이다. 만약, 각각의 타입을 정의한다고 하면 공통적으로 이것들은 시동 켜기, 시동 끄기, 엑셀, 브레이크와 같은 행위와 시동이 들어와 있는지, 연료는 얼마나 남았는지에 대한 상태 값을 제공한다. 이런 것은 차라는 특징에서 나온 것이다. public class Tesla { bool powerOn; bool electric; // Tesla 특화 멤버 필..

[C#] Method의 Parameter 전달방식과 Shallow, Deep Copy

Method를 만드는 방법에 대해서 설명했었는데 그렇다면 Method는 Parameter를 어떻게 전달할까? 2가지 방법이 있다. 1. Method의 Parameter 전달 방식 1.1 call by value parameter에 값을 전달하기 때문에 호출한 쪽에서는 영향이 없다. Reference Type은 값 자체가 인스턴스의 참조값이므로 call by Value를 하더라도 참조값이 전달되므로, 호출 전 전달 변수에 영향을 줌 1.2 call by reference parameter에 참조값을 전달하기 때문에 호출한 쪽에도 영향이 있다. 1. ref 키워드를 사용 : ref 키워드를 사용하고, 호출 전에 반드시 값을 할당한 상태에서 호출해야한다. 2. out 키워드를 사용 : 호출전에 선언만 하고, ..

728x90
반응형
LIST