[C#] 좀 더 심화된 C# 문법을 알아보자

2024. 7. 16. 11:37C#

728x90
반응형

 안녕하세요. 진득코딩입니다. 저번 시간까지 간단한 C# 문법을 이용하여 간단한 계산기를 만들어보았습니다. 이번 시간에는 조금 더 심화된 C# 문법들에 대해서 살펴보도록 하겠습니다.

구조체

 앞선 기초 문법에서도 살펴봤던 구조체입니다. 구조체를 이용하여 여러 변수들을 모아서 사용할 수 있습니다. 사용할 때에는 new를 사용하여 p로 생성했다면 p.x, p.y, p.z와 같이 표현하여 사용할 수 있습니다.

 똑같이 구조체를 만들고 배열로 선언할 수도 있습니다. new를 할 때 배열로 선언하고 사용할 때에는 p[i].x, p[i].y, p[i].z와 같이 사용하실 수 있습니다.

화살표 함수

 

 화살표 함수는 Arrow Function이라고도 하고 주로 한줄짜리 함수같은 간단한 함수에서 많이 사용됩니다. 원래의 함수에서 {}를 빼고 =>로 함수 안의 내용과 이어주면 함수와 같은 기능을 하게 됩니다. 이때 마지막에 실행된 코드가 자동으로 return되기 때문에 return을 따로 안적어줘도 되고 return할 코드를 마지막에 적어주시면 됩니다.

접근 제어

 접근 제어에는 크게 4가지가 존재합니다. public은 어디서든 참조가 가능하지만 보안에 취약합니다. private는 해당 클래스나 구조체에서만 참조가 가능합니다. internal은 같은 프로젝트 내에서 참조 가능한 접근 제어입니다. 마지막으로 protected는 상속관계인 클래스에서 참조가 가능한 접근 제어입니다.

클래스

 클래스의 구조를 살펴보면 class 앞에 접근제어 수준을 적어주고 class 뒤에는 클래스 이름을 적어줍니다. 클래스 안에는 필드와 메소드를 선언할 수 있습니다. 클래스를 사용할 때는 new를 사용하여 인스턴스로 사용하면 됩니다.

 생성자는 public square () {}와 같은 형식으로 쓰고 매개변수와 square를 생성할 때의 코드를 작성할 수 있습니다. 소멸자는 접근 제어 없이 ~ 기호만 붙여서 만들면 되고 생성자와 클래스 이름을 같게 해주시면 됩니다.

 partial 클래스는 한 클래스를 나눠서 작성할 수 있도록 해주는 클래스입니다. 위에 partial클래스로 Form1이 따로따로 되어 있지만 컴파일하는 과정에서 하나의 클래스로 인식됩니다. 그래서 하나의 클래스를 두 명이상이 함께 개발할 때 partial 클래스로 나누어서 작업하면 conflict날 확률을 낮출 수 있습니다.

속성

 개발을 할때에 보안을 위해서 캡슐화하는 것이 중요합니다. 이용자에게 보여줄 정보는 getter만 제공하여 해당 변수를 제어할 수 없게 하고 제어할 필요가 생겼을 때만 setter를 사용하여 캡슐화를 진행하는 것이 좋습니다. 자바나 C, C++에서는 위와같이 변수들을 선언해주고 getter와 setter 메서드를 각각 따로 만들어서 위와 같이 사용하였습니다.

 하지만 C#에서는 위와 같이 public string Name {get; set;}과 같이 간단하게 getter와 setter를 사용할 수 있습니다. 속성 초기화도 string.Empty를 사용하여 간단하게 할 수 있습니다. 특별히 정의가 필요한 경우에는 {}를 사용하여 간단하게 정의해줄 수 있습니다.

상속

상속은 만들어놓은 인터페이스를 가져와서 해당 인터페이스를 기반으로 작업할 때 유용하게 사용할 수 있습니다. C#에서의 상속은 :(상속하고싶은 클래스 이름)으로 간단하게 적용이 가능합니다. 상속을 하게 되면 원래 있던 메서드를 상속받은 메서드에서도 호출이 가능한 것을 볼 수 있습니다.


 이번 시간에는 조금 더 난이도 있는 문법들을 살펴보았습니다. 자바에서 많이 봤거나 비슷한 문법도 많았지만 partial같은 생소한 문법도 있어서 여러 문법을 배우는 느낌이라서 좋았습니다. 이번 포스팅은 여기까지입니다. 끝까지 봐주셔서 감사합니다.😀

728x90
반응형
LIST