본문 바로가기

728x90
반응형

C#

(8)
[C#] 인스턴스, 싱글턴 인스턴스 new 연산자를 사용하여 메모리를 할당해 준 실체화된 객체를 인스턴스라고 한다. 싱글턴 패턴 싱글턴 패턴이란 정적 필드를 응용하여 클래스의 인스턴스를 단 하나만 생성하도록 만든 것이다. ​ 싱글턴 패턴은 생성자의 접근 제한자를 private 으로 설정하여 외부에서 인스턴스 생성을 제한하고 하나의 인스턴스만 클래스 내부에서 미리 만들어서 사용할 수 있다. ​ 싱글턴 패턴을 사용할 때에는 정적 필드로 객체를 생성해 주고 클래스 외부에서 인스턴스를 사용하기 위해서 클래스에 접근한 후에 선언한 정적 필드에 접근한 후에 객체를 사용할 수 있다. ​ 이를 코드로 작성해 보면 아래와 같다. using System; namespace ConsoleApp1 { public class Person { static..
[C#] 정적 필드 정적 필드 만약 클래스의 객체가 생성될 때마다 증가하는 필드를 선언하고 싶어서 다음과 같은 코드를 작성하였다고 해보자. using System; namespace ConsoleApp1 { public class Print { public int calltimes; public Print() { Console.WriteLine("Hello World!"); calltimes++; } } class Program { static void Main(string[] args) { Print print1 = new Print(); Console.WriteLine(print1.calltimes); Print print2 = new Print(); Console.WriteLine(print2.calltimes); }..
[C#] 생성자, 소멸자 생성자 C# 클래스에는 생성자라는 메서드가 존재한다. 이 생성자의 역할은 객체가 생성되는 순간에 메서드를 실행시킨다. 생성자를 정의하는 방법은 클래스 안에 접근제한자와 클래스명을 명시해주고 반환값이 없는 메서드를 생성해주면 된다. 따라서 다음 코드와 같이 작성할 수 있다. using System; namespace ConsoleApp1 { class Student { public string name = "enchupin"; public int ID = 20230817; public Student(string n) { Console.WriteLine("이름 : "+n); } } class Program { static void Main(string[] args) { Console.WriteLine("st..
[C#] 오버로딩 오버로딩 C#에서는 메서드를 사용할 때 오버로딩이 가능하다. 오버로딩이란 같은 이름의 메서드를 여러 개 선언하여 사용하는 것을 의미한다. 이때 이름이 같은 메서드끼리 매개변수의 차이를 이용하여 구분할 수 있다. 예를 들어 이름이 같더라도 매개변수가 int형인 메서드와 string형인 메서드는 다른 메서드처럼 사용할 수 있는 것이다. 이를 코드로 확인해보면 다음과 같다. using System; namespace ConsoleApp1 { public class AllFunc { public void writefunc(string name) { Console.WriteLine("이름 : "+name); } public void writefunc(int ID) { Console.WriteLine("학번 : "..
[C#] 클래스 메서드 (Method) 클래스에 대해 공부하면서 메서드라는 용어를 알게 되었다. 메서드는 단순히 C/C++ 에서의 함수와 같다고 보면 된다. 필드 (Field) 필드는 클래스에 정의된 속성을 의미한다. 단순히 말하자면 클래스에 정의된 변수들을 의미한다고 보면 된다. 클래스 클래스는 하나의 의미를 갖는 변수와 함수를 하나의 틀 안에 묶는 것이라고 할 수 있다. C언어에서의 구조체와 그 의미와 구조는 매우 유사하지만 구조체는 변수만을 묶을 수 있다. 클래스를 선언하는 방법은 C언어의 구조체와 같다. 단지 이름만 클래스로 바뀌었을 뿐이다. 클래스에 접근할 때에도 C언어와 마찬가지로 온점을 사용한다. 아래 코드에서 Student 라는 이름의 클래스를 선언하고 클래스 안에 변수 두 개와 함수 하나를 선언해 보겠다..
[C#] 가변 배열 가변 배열 C# 에서는 가변 배열을 지원하는데 이는 배열의 배열이라고 생각하면 쉽다. 선언하는 방법은 아래 코드와 같다. int [][] arr = new int[5][]; arr[0] = new int[10]; arr[1] = new int[5]; arr[2] = new int[7]; arr[3] = new int[8]; arr[4] = new int[2]; 위 코드가 의미하는 것을 시각화하면 다음과 같다. 가변 배열을 사용하면 다차원배열이 항상 M*N 의 크기를 갖고 있는 것과는 다르게 유동적인 크기를 갖을 수 있기 때문에 각 차원별로 원하는 만큼 메모리를 할당하여 유동적으로 사용할 수 있고 메모리를 최대한 효율적으로 사용할 수 있다는 장점이 있다.
[C#] 배열 (Array) 배열의 선언 C# 에서는 배열을 선언하기 위해서 "new" 라는 예약어를 사용한다. 예시로 아래 코드처럼 배열을 선언할 수 있다. int [] products = new int [5]; string [] names = new string[500]; 배열의 초기화 C# 에서의 배열의 초기화는 C언어나 C++ 과는 다른 독특한 방식으로 초기화를 하고있다. 배열을 초기화 할 때에는 선언이 끝난 뒤에 바로 중괄호를 붙여서 초기화를 해주는 방식을 사용한다. 따라서 아래 코드와 같이 초기화하는 것이 가능하다. int [] products = new int[5] {1, 2, 3, 4, 5}; string [] names = new string[5] {"kim", "lee", "park", "choi", "jung"}..
[C#] 자료형 정수형 자료형 C# 에서 사용할 수 있는 정수형 자료형은 다음과 같다. 자료형 범위 비고 sbyte -128 ~ 127 부호 있는 8비트 정수 byte 0 ~ 255 부호 없는 8비트 정수 short -32,768 ~ 32,767 부호 있는 16비트 정수 ushort 0 ~ 65,565 부호 없는 16비트 정수 int -2,147,483,648 ~ 2,147,483,647 부호 있는 32비트 정수 uint 0 ~ 4,294,967,295 부호 없는 32비트 정수 long -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 부호 있는 64비트 정수 ulong 0 ~ 18,446,744,073,709,551,615 부호 없는 64비트 정수 실수형 자료형 C#에서..

728x90
반응형