C# 23

C# 매개변수와 참조, 출력

매개변수 매개변수(Parameter) 파라미터 값이라고도 부름 이 매개변수는 메소드의 구성 중 하나 void 메소드(매개변수) 매개변수가 없이 사용할 수 있는 메소드가 있긴 하나 매개변수가 없는 메소드는 거의 없다 그 이유는 어떠한 목적을 가지고 메소드를 만드는데에 목적을 이루려면 목적이 생기기 위한 어떠한 계기라는게 있다. 이는 어떠한 값을 받아서 그 값으로 무언가 결과를 얻어 내기 위해서 생김. 그렇기에 매개변수는 왠만하면 메소드에 들어가 있음. 없다면 출력을 위해서 사용하는 메소드 정도. class operation { public static int Plus(int a, int b) { return a + b; } } 이때 int a, b는 하나의 매개체가 됨. 바로 파라미터 값. 이 값은 메소드..

C# 2022.06.01

C# 연산자

선순위 종류 연산자 1 증감 연산자 및 Null 조건부 연산자 후위 ++ -- ?. ?[] 2 증감 연산자 전위 ++, -- 3 산술 연산자 * / % 4 산술 연산자 + - 5 시프트 연산자 > 6 관계 연산자 = is as 7 관계 연산자 == != 8 비트 논리 연산자 & 9 비트 논리 연산자 ^ 10 비트 논리 연산자 | 11 논리 연산자 && 12 논리 연산자 || 13 Null 병합 연산자 ?? 14 조건 연산자 ?: 15 할당 연산자 = *= /= %= += -= = &= ^= |= 연산자는 하나의 약속. 어떤 연산을 할지 연산자라는 약속된 기호를 사용해 정하게 됨. 그리고 연산자는 피연산자를 이용해 연산을 합니다. x + y x 와 y 는 피연산자이며 + 는 연산자 입니다. 주로 사..

C# 2022.05.02

C# 메소드

메소드(Method) // C++에서는 함수 메소드는 코드를 하나로 묶고 하나로 묶인 메소드를 호출해서 사용 class 클래스이름 { 한정자 반환 형식 메소드이름( 매개변수 ) { return 반환값; } } 한정자는 C#이나 C++이나 별 다를게 없음 한정자는 class에서 자세하게 설명하고 static 한정자만 먼저 설명 간단히 설명하자면 클래스는 하나의 객체이며 이 객체는 인스턴스를 해야 진정한 객체라고 할 수 있음. 그러나 인스턴스를 하지 않고 사용할 수 있게 해주는게 static 한정자의 역할 객체를 만들지 않고 Sum 클래스의 메소드를 참조해서 사용이 가능 위 메소드 같은 경우 return이 쓰였는데 return은 값을 반환 해주는 문법이다 메소드에서 모든연산을 끝내고 return을 통해서 메..

C# 2022.04.29

C# 문자열 보간, 서식, 분할, 변형, 찾기

보간 문자열 보간이란 서식화된 문자열을 편리하게 다루기 위해서 C# 6.0에서 새로 도입된 기능 이 문자열 보간을 사용하기 위해서는 문자열 앞에 $ 기호를 붙임 int a = 1; int b = 2; Console.WriteLine(" {0}, {1} ", a, b ); Console.WriteLine($" {a}, {b} " ); //문자열 보간 Console.WriteLine(" {0, -6} {1} ", a, b); Console.WriteLine($"{a, -6} {b} "); //문자열 보간 Console.WriteLine(" {0} ", "안녕하세요"); Console.WriteLine($"{"안녕하세요"}"); //문자열 보간 Console.WriteLine(" {0} ", a > b? "큼..

C# 2022.04.27

C# Object 자료형, 박싱과 언박싱

이 object 자료형은 C++에 auto와 비슷한 역할 이 object는 어떠한 자료형이 될 수 있다. 이 원리는 상속을 이용 C#에서는 object가 모든 데이터 형식을 다룰 수 있도록 모든 데이터 형식의 최상위 계층을 object로 지정했으며 자동으로 object형식에서 상속받게 했음 따라서 어떤 형식의 데이터라도 object로 처리가 가능함 object a_bool = true; object b_int = 1; object c_float = 1.1f; object d_char = 'a'; object f_string = "hellow world"; 박싱과 언박싱 이 object의 메커니즘은 박싱관 언박싱의 원리를 이용 여기서 문제 일반적인 변수는 값 형식이라서 스택에 들어감. 하지만 object는..

C# 2022.04.27

C# 형변환

형변환 이란 데이터 형식을 바꾼다는 뜻 예를 들면 int형 데이터를 double형으로 바꾸는 등 방법은 float a; int b = 10; a = (float)b; a의 데이터 타입은 float 이라서 원레라면 int형 변수인 b 값을 a변수에 넣을 수 없지만 b 앞에 (float)라고 형변환을 해줌으로 a 변수에 b 값을 넣을 수 있다. 주의할 점 데이터의 크기가 맞지 않을시 오버플로우가 발생할 수 있음 byte 에 int 값을 넣을 수는 없음 형변환시 데이터 크기를 확인할 것 실수 형변환 실수 자료형은 float, double, decimal 3가지가 있음 실수는 정수에서 일어나는 오버플로우와, 언더플로우가 일어나지 않음 대신 정밀성이 떨어짐. float나 double은 소수를 2진수로 메모리에 저..

C# 2022.04.27

C# 상수와 열거형

상수 상수란 변하지 않는 수를 뜻함. 프로그래밍에서 상수가 필요한 이유 코드를 작성할 수록 복잡해지는 구조로 인해 잊어버리는 변수들을 실수로 건드려 오류가 발생하는 상황을 방지하기 위함. 상수의 키워드는 const const int a = 10; 상수로 지정된 변수는 변경이 불가능 상수는 값이 변하지 말아야 할 부분 등에 많이 쓰임 열거형 열거형이란 상수를 순서대로 나열해서 선언해줌 const를 안붙히고 한번에 선언한다고 생각하면 됨 이 열거형은 특징은 선언시 자료형을 지정해주지 않으면 자동으로 int형을 부여함. 사용 가능한 자료형은 byte, sbyte, short, ushort, int, uint, long, ulong, char 정수 자료형만사용이 가능

C# 2022.04.27

C# Nullable, Var

Nullable 변수의 초기화 보통 다른 언어에서는 int a= 0; 처럼 int형 a 변수에 0이라고 초기화 함. 하지만 C# 에서는 Nullable 형식으로 초기화가 가능함. int? a = null; Nullable 형식을 통해 null값을 넣음 출력시 아무것도 출력되지 않음 대신 a == null 을 해보면 true가 출력됨 그냥 값이 null인지 아닌지 확인하기 위함. 이를 위한 기능으로 HasValue라는 기능이있는데 a에 null일때랑 a에 값을 넣었을때 true false 인지를 알 수 있음. 초기화 용도. Var var라는 형식은 object 형식과 매우 비슷한 셩격을 띔 var a = 1; var b = 0.1f; 이를 출력 하면 그대로 값이 출력됨 쉽게 설명하면 var에 넣은 값의 자..

C# 2022.04.26

C# 개발 환경

비주얼 스튜디오 실행 -> 콘솔 애플리케이션을 찾아서 프로젝트 이름 정하고 생성하면 처음 나오는 화면 using은 하나의 키워드(Keyword) 문장의 끝은 세미클론 ; 으로 나타냄 namespace는 다른 글에서 설명하고 간단하게 구조에 대해 설명하자면 클래스, 구조체, 인터페이스 등으로 구성됨. namespace mytest001은 mytest001이라는 이름을 가진 하나의 집합체이다 C#의 클래스는 C++ 클래스와는 다른 개념. C++은 클래스를 인스턴스(할당)해줘서 객체를 만든다는 개념. C#은 프로그램을 구성하는 기본 단위이며 메소드(Method)라고 함. (메소드는 데이터와 데이터를 처리하는 기능) main은 프로그램의 시작을 알리는 부분이며 모든 언어가 main을 약속처럼 사용함. C#도 마..

C# 2022.04.26

C# 스택, 힙 영역

C#에서는 값 형식과 참조 형식이 있음. 값 형식은 변수가 값을 담는 데이터 형식 참조 형식은 변수가 값 대신 값이 있는 곳의 위치(참조)를 담는 데이터 형식 이 둘은 메모리 영역중 각각 한 부분을 차지함. 값은 스택(Stack) 스택이란 FILO(First in Last Out)의 구조와 FIFO(First in First Out)의 구조를 가짐 모든 변수들은 스택에 쌓이게 되고 이 스택은 프로그램이 종료되는 시점, 혹은 스택으로 관리 되던 구역이 종료되는 시점에서 스택에 저장되어 있는 모든 변수는 제거가 됨. 참조는 힙(Heap) 동적 할당을 할때 할당되는 영역. 힙 영역에 집어넣고 필요할때마다 사용. C++은 사용자가 직접 수거해줘야함. C#은 가비지 컬렉터가 힙 영역에 들어가 있다가 더 이상 사용..

C# 2022.04.25