기초 구문 익히기

2020. 2. 12. 17:56C# 언어/이것이 C# 이다. 책정리

반응형

 

  • using 키워드

- c#의 키워드 중 하나

- using 키워드만 사용하면 네임스페이스 전체를 사용한다는 의미

- using static은 어떤 데이터형식의 정적 멤버를 데이터 형식의 이름을 명시하지 않고 참조하겠다고 선언하는 기능

 

  • static void Main(string[ ] args) { }

- 프로그램의 진입점

- 모든 프로그램은 Main이라는 이름을 가진 메소드를 하나 가지고 있어야 함

 

  • CLR ( common Language Runtime)

- C# 컴파일러는 C# 소스 코드를 IL ( Intermaediate Language) 라는 중간 언어로 작성된 실행 파일을 만들어 냄

  사용자가 이 파일을 실행시키면 CLR이 중간 코드를 읽어 들여 다시 하드웨어가 이해할 수 있는 네이티브 코드로

  컴파일한 후 실행

- 이것을 JIT(Just In Time) 컴파일 이라고 부름

- 실행에 필요한 코드를 실행할 때마다 실시간으로 컴파일해서 실행한다는 뜻

- 왜 두 번씩이나 컴파일하는 과정을 거치는지?

   : 서로 다른 언어들이 만나기 위한 지점이 바로 IL이라는 중간 언어, 이 언어로 쓰여진 코드를 CLR이 다시 자신이

     설치되어 있는 플랫폼에 최적화시켜 컴파일하는 것 즉, 다양한 플랫폼에 최적화된 코드를 만들어 냄

 

  • 리터럴

- int x = 30; 에서 x는 변수, 30은 리터럴로 표현

 

  • 값 형식과 참조 형식

- 값 형식은 변수가 값을 담는 데이터 형식, 스택 메모리 영역과 관련

- 참조 형식은 변수가 값 대신 값이 있는 곳의 위치를 담는 데이터 형식, 힙 메모리 영역과 관련

 

  • 스택과 힙

- 값 형식의 변수는 모두 스택에 저장되어 코드 블록 안에서 생성된 모드 값 형식의 변수들은 "}" 을 만나게 되면 메모리

  에서 제거

- 참조 형식은 힙 영역에는 데이터를 저장하고 스택 영역에는 데이터가 저장되어 있는 힙 메모리의 주소를 저장

- 스택은 변수의 생명 주기가 다 하면 자동으로 데이터를 제거

- 힙은 더 이상 데이터를 참조하는 곳이 없을 때 가비지 콜렉터가 데이터를 치워주는 구조

 

  • 박싱과 언박싱
object a = 20;

  : object 형식에 값 형식의 데이터를 할당하려는 시도가 이루어지면 object 형식은 박싱을 수행해서 해당 데이터를         힙에 할당 이를 "박싱" 한다고 표현

 

object a =20;
int b = (int)a;

: 박싱되어 있는 값을 꺼내 값 형식 변수에 저장하는 과정을 언박싱 이라고한다.

 

  • 상수와 열거 형식

- 변수와 달리 안에 담긴 데이터를 절대 바꿀 수 없는 메모리 공간.

 

- 상수 선언

const 자료형 상수명 = 값;

 

-열거 형식

enum 열거 형식명 : 기반자료형 { 상수1, 상수2, 상수3 ''' }

 

  • Nullable 형식

- 변수에게 할당된 메모리 공간을 비워둘 수 있도록 Nullable 형식을 사용

데이터형식? 변수이름;

int? a = null;
float? b = null;

- int a= null 과 int? a = null 은 서로 다른것

- Nullable 형식은 HasValue와 Value 속성을 가지고 있음

- HasValue 속성은 해당 변수가 값을 갖고 있는지 또는 그렇지 않은지를 나타냄

- Value 속성은 변수에 담겨 있는 값을 나타냄

 

  • var

- C#은 강력한 형식의 언어

- var 키워드를 통해서 약한 형식 검사를 하는 언어의 편리함도 지원

var a = 3; // a는 int 형식
var b = "Hello"; // b는 string 형식

- var는 지역 변수로만 사용 가능, 코드 블록 안에서 선언되는 변수를 뜻함, 다른 코드에서는 접근할 수 없다는 특징

- 초기화를 꼭 해줘야함.

- C#에서 전역변수를 지원하지 않도록 만들었다.

 

  • string 형식
메소드 설명 반환 값
IndexOf() 찾고자 하는 지정된 문자의 위치를 찾음 int형
LastIndexOf() 뒤에서 부터 지정된 문자의 위치를 찾음 int형
startsWith() 지정된 문자로 시작하는지를 평가 bool형, 없을 경우 -1로 반환
EndsWith() 지정된 문자열로 끝나는지 평가 bool형, 없을 경우 -1로 반환
Contains() 지정된 문자열을 포함하는지 평가 bool형, 없을 경우 -1로 반환
Replace() 지정된 문자열을 다른 문자열로 변환 지정된 문자열
ToLower() 문자열의 대문자를 소문자로 반환 문자열
ToUpper() 문자열의 소문자를 대문자로 반환 문자열
Insert() 지정된 위치에 새 문자열 삽입 문자열
Remove() 지정된 위치의 문자열 제거 문자열
Trim() 앞/뒤 공백 제거 문자열
TrimStart() 앞 공백 제거 문자열
TrimEnd() 뒤 공백 제거 문자열
Split() 지정된 문자로 분리하여 반환 배열
SubString() 지정된 위치와 수로 새 문자열 반환 문자열

 

  • Format() 메소드

http://www.csharpstudy.com/Tip/Tip-number-format.aspx

 

숫자 서식 지정자 - C# 프로그래밍 배우기 (Learn C# Programming)

서식 지정자 (Format Specifier) C# .NET에는 크게 2개의 Format Specifier가 있다. 일반적으로 많이 사용되는 형식을 표현하는 표준 Format Specifier와 사용자가 임의로 다양하게 형식을 지정할 수 있는 Custom Format Specifier가 그것이다. 일반적인 표준 출력 형식의 문법은 다음과 같다. {n,w:tp} 여기서 n은 Argument 위치이며 0부터 시작한다. w는 출력 Width를 가리키며, t는

www.csharpstudy.com

 

  • 문자열 보간

https://blockdmask.tistory.com/359

 

[C#] string format, 문자열 보간($)을 이용한 문자열 출력방법

안녕하세요. BlockDMask 입니다. 오늘 공부할 내용은 C#의 string 출력 방법입니다. C#에서는 string을 출력하는 여러가지 방법이 존재하는데요, 그냥 출력하는 방법, format을 이용한 방법 그리고 문자열 보간을..

blockdmask.tistory.com

 

  • 메소드

- 메소드는 일련의 코드를 하나의 이름 아래 묶는 것

- 클래스 안에 존재한다.

- 메소드는 매개 변수와 반환 형식을 가진다

 

  • ref 키워드

- 참조에 의한 매개 변수 전달

static void Swap( ref int a, ref int b )
{
	int temp = b;
    b = a;
    a = temp;
}

int x = 3;
int y = 4;

Swap(ref x, ref y);

 

- 메소드의 결과를 참조로 반환

Class SomeClass
{
	int SomeValue = 10;
    
    public ref int SomeMethod()
    {
    	// 코드
        return ref SomeValue;
    }
}

// ref 키워드를 사용하지 않는 한 값으로 반환하는 평범한 메소드처럼 동작
SomeClass obj = new SomeClass();
int result = obj.SomeMethod();

// ref 키워드를 사용함
SomeClass obj = new SomeClass();
ref int result = ref obj.SomeMethod();

 

  • out 키워드

- 출력 전용 매개 변수

- ref 와 사용법은 동일하나 ref에게 없는 안전장치가 있음

- ref 키워드를 이용해서 매개 변수를 넘기는 경우에는 메소드가 해당 매개 변수에 결과를 저장하지 않아도 문제 없음.

  out 키워드를 이용해서 매개 변수를 넘길 때는 메소드가 해당 매개 변수에 결과를 저장하지 않으면 에러를 출력함

 

  • 가변길이 매개 변수

- 그 개수가 유연하게 변할 수 있는 매개 변수

- params 키워드와 배열을 이용해서 선언함

https://blockdmask.tistory.com/317

 

[C#] params 가변인자 매개변수에 대해서.

안녕하세요. BlockDMask 입니다. 오늘은 가변인자 매개변수 params 키워드에 대해서 알아보도록 하겠습니다. 날씨가 오락가락하네요. 1. C# params 가변 인자 매개변수란? ▼ C# params 설명과 기능 : 우리가 함수..

blockdmask.tistory.com

반응형