본문 바로가기

C#

[C#] 변수 및 상수 C# 변수는 메서드 안에서 해당 메서드의 로컬변수로 선언되거나, 혹은 클래스 안에서 클래스 내 멤버들이 사용하는 전역적 변수(이를 필드(Field)라고 부름)로 선언될 수 있다로컬변수는 해당 메서드 내에서만 사용되며, 메서드 호출이 끝나면 소멸된다반면 필드는 클래스의 객체가 살아있는 한 계속 존속하며 또한 다른 메서드들에서 필드를 참조할 수 있다(주 : 만약 필드가 정적 필드(static field)이면 클래스 Type이 처음으로 런타임에 의해 로드될 떄 해당 Type 객체(타입 메타정보를 갖는 객체)에 생성되어 프로그램이 종료될 때까지 유지된다) 로컬변수는 기본값을 할당받지 못하기 때문에 반드시 사용 전에 값을 할당해야 하는 반면, 필드는 값을 할당하지 않으면, 해당 타입의 기본값이 자동으로 할당된다예.. 더보기
[C#] 데이터 타입 C#을 포함한 모든 .NET 프로그래밍 언어는 .NET의 Common Type System에 정의된 .NET 데이터 타입을 사용함 C#은 int, double, string과 같은 C# 키워드로 데이터 타입을 표현할 수 있으며, 또한 System.Int32, System.Double, System.String 과 같은 .NET 데이터 클래스로 데이터 타입을 표현할 수도 있다 내부적으로는 C# 컴파일러는 C# 키워드로 된 데이터 타입을 컴파일 후 .NET 데이터 타입으로 변경하게됨 C# 데이터 타입 / .NET 데이터 타입 C# 리터럴 데이터C# 코드에서 123, true, "ABC"와 같이 값을 직접 써줄 수 있는데, 이를 리터럴(Literal)이라 함C#에서 리터럴 데이터를 사용할 때, 별도의 접미어 .. 더보기
[C#] 프로그래밍 언어 C# 프로그래밍 언어C#은 마이크로소프트에서 개발된 객체 지향 프로그래밍 언어로서 Java나 C++와 비슷한 면들을 많이 가지고 있다C#을 이야기하면 자연스럽게 .NET Framework을 함께 이야기 해야할 정도로 C#은 .NET Framework을 이용하여 프로그래밍하는 대표적인 언어이다C#은 윈도우 프로그래밍, 웹 프로그래밍, 게임 및 모바일 프로그래밍 등 모든 영역에서 사용되는 범용 프로그래밍 언어이다 C# 프로그램 소스코드C# 프로그램은 .cs 라는 확장자를 사용한다예) test.cs, test.aspx, test.xaml.csC++와 다르게 C#은 *.h과 같은 별도의 헤더 파일이 없다 C# 프로그램으로부터 실행 파일을 만들기 위해서는 (1) Visual Studio를 사용하는 경우 C# 프로.. 더보기
20240513 C# 기초 - 자료형 Value(값)값 형식은 변수가 값을 담는 데이터 형식이고 타입은 struct형으로 되어있음struct는 프로그래밍 언어에서 구조화 된 데이터를 처리할 때 사용하는 구조체(하나의 제품으로 치자면 이미 완성되어 있는 완제품) Reference(참조)참조 형식은 변수가 값 대신 값이 있는 곳의 위치(참조)를 담는 데이터 형식이고 타입은 class형으로 되어있음(하나의 제품으로 치자면 변경이 가능한 제품) Console.WriteLine 다음 소괄호 안에는 여러가지 데이터형이 들어갈 수 있도록 이미 System 네임스페이스 안에 Console이라는 클래스에 WriteLine이라는 함수로 여러가지 데이터형을 쓸 수 있게끔 정의되어 있음 int a = 10;Console.WriteLine(a);void Conso.. 더보기
20240513 C# 구조이해 컴파일러컴파일러에 의해 exe, dll 파일 등과 같이 만들어진 출력 파일을 어셈블리(Assembly)_라고 부르는데 이것을 컴퓨터는 다시 자신이 알 수 있는 원시 코드로 컴파일하여 우리가 만든 프로그램이 실행되게 만듭니다 [C# 코드]->[C# 컴파일]->[빌드]->[exe, dll 실행]->[원시 코드 컴파일]->[프로그램 시작] 디버깅일반적으로 게임을 하다보면 의도치 않은 종료나 비정상적인 결과가 나왔을 때 유저들을 버그라고 부름이런 논리적 오류나 잠재적인 오류를 가리켜 통칭 버그(Bug)라 부르는데 이를 근본적인 원인을 찾아내 해결할 수 있는 작업을 디버깅이라 할 수 있음 디버깅을 하기 위해서는 F5를 누르면 디버깅이 시작되는데 결과창을 확인 하기도 전에 콘솔창이 닫히게 되는데 이는 코딩을 잘못해.. 더보기
20240508 C#공부 오버로딩객체지향 프로그래밍에서 클래스가 가지는 특징클래스 내부에 이름이 같은 메서드를 여러 개 선언하여 필요에 맞게 사용햄버거 만들 때 햄버거라는 큰 틀은 그대로 두고 어떤 식재료 넣는지에 따라 다른 햄버거가 되는 원리와 같음 클래스의 상속 개념부모 클래스의 내용을 자식 클래스에서 그대로 사용할 수 있게 하는 것 상속을 사용하면 반복 내용은 부모 클래스에 준비해 두고 변경 내용만 자식 클래스에 반영하는 식으로 관리할 수 있어 요구사항 바뀔 때 대응하기 쉬움 객체지향 프로그래밍 언어에서상속을 주는 클래스 앞에 부모 기반 슈퍼 등을 붙여 부름상속을 받는 클래스 : 자식 파생 서브 자식 클래스가 많아질수록 코드 수정할 때 생산성이 향상됨 오버라이딩부모 클래스에 있는 메서드를 자식 클래스에서 재정의하는 기능오버.. 더보기
[C#] 객체지향 프로그래밍, 네임스페이스, 클래스, 메서드, 필드 메서드 : 함수와 같은 역할로, 문자열 출력 같은 행위를 수행하는 구성 요소 namespace Main{ 참조 0개 class Program { 참조 0개 static void Main(string[] args) { //원하는 코드 Print print = new Print(); print.PrintHello(); } }} 메서드 여러 개 존재할 수 있음 클래스 : 메서드나 변수 등을 담고 있는 묶음이며, 인스턴스를 만들기 위한 요소 클래스를 객체화하여 Print 형태의 객체로 만들어야, 메서드 호출 가능 객체지향 프로그래밍 : 순서대로 나열된 명령어의 집합이 아니라 여러 객체들을 유기적으로 결합하여 .. 더보기
[C#] Visual Studio에 대한 소개 파일 - 새로 만들기 - 프로젝트 선택새 프로젝트 만들기 - Windows Forms 앱 (.NET Framework) 선택 솔루션 탐색기 : 우리 프로젝트의 구조를 볼 수 있는 탐색기솔루션 밑에 여러 프로젝트들을 볼 수 있는 구조로 되어있음 Form1 클래스 통해 UI 구성 우측 하단 속성창 : 폼이나 다른 컨트롤에 대한 속성, 이벤트 설정 출력 : 프로젝트 시작, 종료, 빌드에 대한 정보들을 출력 창에서 보여줌오류 : 무조건 해결이 필요경고 : 잘못되었거나, 그런 것으로 추정되지만 무시 가능 도구상자에 있는 컨트롤들을 폼에 추가하여 UI를 구성 솔루션 빌드 : 솔루션(전체 프로젝트)을 빌드하여 실행파일을 만들어내는 과정 새 프로젝트 생성 때 지정한 위치에 프로젝트가 생성됨기본적으로 저장 경로는 C:/.. 더보기