Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#

  1. C# 배열 초기화 방법 완벽 정리

    C#에서 배열이란 무엇인가?모든 배열은 연속된 메모리 공간으로 구성됩니다. 가장 낮은 주소에는 첫 번째 요소가, 가장 높은 주소에는 마지막 요소가 저장됩니다. 이러한 구조 덕분에 인덱스를 통해 각 요소에 빠르게 접근할 수 있습니다.배열 선언하기C#에서 배열을 사용하려면 먼저 배열을 선언해야 합니다.int[] rank;하지만 선언만으로는 메모리에 배열이 초기화되지 않습니다. 단순히 배열 변수를 만들었을 뿐, 실제 데이터를 담을 공간이 할당된 것은 아닙니다.new 키워드로 배열 초기화하기C#에서 배열은 참조 타입(reference ty

  2. C#에서 푸시(Push)·팝(Pop) 연산으로 스택(Stack) 구현하기

    C# 스택(Stack) 개요 스택(Stack)은 LIFO(Last In, First Out, 후입선출) 방식으로 동작하는 대표적인 자료구조입니다. 가장 나중에 넣은 요소가 가장 먼저 빠져나오는 구조로, C#에서는 System.Collections 네임스페이스에 포함된 Stack 클래스를 통해 손쉽게 사용할 수 있습니다. 요소를 추가할 때는 Push(), 제거할 때는 Pop(), 그리고 제거하지 않고 맨 위의 요소 값만 확인할 때는 Peek() 메서드를 사용합니다. Push 연산으로 요소 추가하기 Push() 메서드를 사용하면 스택의

  3. C# ref 키워드로 변수에 참조 할당하는 방법

    C#에서 변수에 참조를 할당하는 방법C#에서 변수에 대한 참조(reference)를 할당하려면 ref 키워드를 사용합니다. 참조 매개변수는 변수의 메모리 위치를 가리키는 참조로, 메서드에 인자를 전달할 때 원본 변수 자체를 대상으로 작업할 수 있게 해줍니다.값(value)으로 매개변수를 전달하면 변수의 복사본이 생성되어 전달됩니다. 반면 참조(reference)로 매개변수를 전달하면 복사본이 아닌 원본 변수의 메모리 주소가 전달되기 때문에 새로운 저장 공간이 생성되지 않습니다. 따라서 메서드 내부에서 수행한 모든 변경 사항은 호출자

  4. C# List의 RemoveAt() 메서드로 특정 위치의 요소 삭제하기

    C#에서 RemoveAt() 메서드는 리스트(List)에서 지정한 인덱스 위치에 있는 요소를 삭제하는 데 사용됩니다. 인덱스는 0부터 시작하므로, 세 번째 위치의 요소를 삭제하려면 인덱스 2를 전달해야 합니다.리스트에 요소 추가하기먼저 삭제 작업을 테스트할 리스트에 요소들을 추가해 보겠습니다.var subjects = new List<string>(); subjects.Add(Physics); subjects.Add(Chemistry); subjects.Add(Biology); subjects.Add(Science);위

  5. C#에서 범위 확인 연산자(::)의 용도와 사용 방법

    C++에서 범위 확인 연산자인 ::는 주로 전역 변수를 참조하는 데 사용됩니다. 반면 C#에서는 이 연산자가 네임스페이스와 관련된 용도로 사용됩니다.범위 확인 연산자가 필요한 이유서로 다른 네임스페이스에 동일한 식별자(타입 이름)를 가진 클래스나 구조체가 존재할 수 있습니다. 이 경우 어떤 타입을 참조해야 하는지 명확하게 지정하기 위해 범위 확인 연산자를 사용합니다.대표적인 예로, System.Console 클래스를 참조할 때 전역 네임스페이스 별칭(global)과 함께 범위 확인 연산자를 다음과 같이 활용할 수 있습니다.globa

  6. C#에서 쉼표 연산자를 사용하는 이유와 활용 방법

    C#에서 쉼표 연산자(comma operator)는 크게 두 가지 용도로 사용됩니다. 첫째, 메서드의 인수 목록에서 인수들을 구분하는 역할을 합니다. 둘째, for 문 안에서 여러 변수를 동시에 초기화하거나 증감시킬 때 연산자로 활용됩니다.for 문에서 쉼표 연산자 활용하기다음 예제는 for 문에서 쉼표 연산자를 사용해 두 개의 변수를 동시에 초기화하는 방법을 보여줍니다.for (int i = begin, j = 1; i <= end; i++, j++)위 코드에서 변수 i와 j가 쉼표로 구분되어 한 번에 초기화되며, 반복문이

  7. C#에서 배열을 선언하는 방법 완벽 가이드

    C#에서 배열(Array)은 동일한 데이터 타입의 여러 값을 하나의 변수에 저장할 수 있는 자료 구조입니다. 배열을 선언하는 기본 문법은 다음과 같습니다.datatype[ ] Name_of_array;각 요소의 의미는 다음과 같습니다.datatype : 배열에 저장될 요소들의 데이터 타입을 지정합니다.[ ] : 해당 변수가 배열임을 나타내며, 필요에 따라 배열의 크기를 지정할 수 있습니다.Name_of_array : 배열의 이름을 지정합니다.예를 들어, double 타입의 배열을 선언하는 코드는 다음과 같습니다.double[ ] b

  8. C#에서 Main() 메서드가 static으로 선언되는 이유는 무엇일까?

    Main 메서드는 클래스가 실행될 때 어떤 작업을 수행할지 정의하는 역할을 하며, 필요에 따라 다른 객체나 변수를 생성(instantiate)하기도 합니다.C#에서 Main 메서드가 static으로 선언되는 이유는 프로그램이 시작되는 시점에 곧바로 호출될 수 있어야 하기 때문입니다. Main은 프로그램의 진입점(Entry Point)으로, 클래스의 인스턴스를 생성하지 않아도 런타임이 직접 호출하여 실행할 수 있습니다.만약 Main이 static이 아니라면, 프로그램을 시작하기 전에 해당 클래스의 객체를 먼저 만들어야 하는데, 이 과

  9. C# DateTime 클래스 완벽 정리: 날짜·시간 표현부터 날짜 비교까지

    C#의 DateTime 클래스는 프로그램 내에서 날짜와 시간을 표현하고 조작할 때 사용하는 기본적인 구조체입니다. 현재 시각 조회, 특정 날짜 생성, 날짜 간 비교 등 실무에서 자주 쓰이는 다양한 기능을 제공합니다. DateTime 클래스의 주요 속성 DateTime 클래스는 아래와 같은 대표적인 속성들을 통해 날짜와 시간 정보에 접근할 수 있습니다. 번호속성 및 설명 1Date시간 정보가 제외된 날짜 구성 요소를 반환합니다. 2Day해당 월의 일(day) 값을 반환합니다. 3Hour시간(hour) 구성 요소를 반환합니다

  10. C#에서 Hashtable과 Dictionary 다루기: 핵심 메서드와 예제 정리

    C#에서 데이터를 키(Key)와 값(Value) 형태로 저장하고 관리할 때는 Hashtable과 Dictionary를 사용할 수 있습니다. 두 컬렉션은 비슷한 역할을 하지만 동작 방식과 타입 안정성에서 차이가 있습니다. 이번 글에서는 두 클래스의 주요 메서드와 함께 실제 예제 코드를 살펴보겠습니다. 1. Hashtable이란? Hashtable 클래스는 키의 해시 코드(hash code)를 기반으로 구성된 키-값 쌍의 컬렉션을 나타냅니다. 배열처럼 인덱스로 접근하는 것이 아니라 키를 사용해 요소에 접근하며, System.Colle

  11. C#에서 정수가 가질 수 있는 최대값은 얼마일까요?

    C# 정수(int)의 최대값C#에서 int(32비트 부호 있는 정수)가 표현할 수 있는 최대값은 2,147,483,647입니다. 이는 2³¹ − 1에 해당하는 값으로, 코드에서는 int.MaxValue 상수를 통해 확인할 수 있습니다.반대로 최소값은 -2,147,483,648이며, int.MinValue로 나타낼 수 있습니다. 만약 이 범위를 넘어서는 큰 수를 다루어야 한다면 64비트 정수형인 long을 사용하는 것이 좋습니다.아래 표는 C#의 주요 데이터 형식과 각 형식이 표현할 수 있는 값의 범위, 그리고 기본값을 정리한 것입니

  12. C#에서 List(목록)를 정렬하는 방법 완벽 가이드

    C#에서 리스트(List)를 정렬하려면 Sort() 메서드를 사용하면 됩니다. Sort() 메서드는 리스트의 요소들을 오름차순으로 자동 정렬해 주며, 별도의 추가 코드 없이 간단하게 호출할 수 있습니다.리스트 생성하기먼저 문자열을 담을 리스트를 하나 생성합니다.List<string> myList = new List<string>();리스트에 요소 추가하기Add() 메서드를 사용해 리스트에 요소를 차례대로 추가합니다.myList.Add(Audi); myList.Add(BMW); myList.Add(Chevrole

  13. C#에서 사용자 지정 메서드를 정의하는 방법

    C#에서 사용자 지정 메서드를 정의하려면 아래와 같은 기본 구문을 사용합니다.<접근 지정자> <반환 형식> <메서드 이름>(매개변수 목록) {메서드 본문}메서드를 구성하는 요소접근 지정자(Access Specifier) − 다른 클래스에서 해당 변수나 메서드에 접근할 수 있는지, 즉 가시성(visibility)을 결정합니다.반환 형식(Return Type) − 메서드가 작업을 마친 후 반환하는 값의 데이터 타입입니다. 만약 메서드가 어떤 값도 반환하지 않는다면 반환 형식은 void로 지정해야 합니다.

  14. C# 연산자 우선순위란? 개념부터 예제까지 쉽게 이해하기

    연산자(Operator)는 컴파일러에게 특정 수학적 또는 논리적 연산을 수행하도록 지시하는 기호입니다. 예를 들어 +, -, *, / 같은 기호들이 모두 연산자에 해당합니다.연산자 우선순위(Operator Precedence)란?연산자 우선순위는 하나의 식(expression)에서 여러 연산자가 함께 사용될 때 어떤 연산을 먼저 수행할지 결정하는 규칙입니다. 우선순위에 따라 항들이 묶이는 방식이 달라지며, 이는 곧 식의 최종 평가 결과에 직접적인 영향을 미칩니다.모든 연산자의 우선순위가 동일한 것은 아닙니다. 대표적인 예로, 곱셈

  15. C# 동적 데이터 형식(dynamic) 정의하고 사용하는 방법

    C#의 동적 데이터 형식(dynamic) 변수에는 어떤 타입의 값이든 자유롭게 저장할 수 있습니다. 일반적인 변수와 달리, dynamic 형식 변수에 대한 타입 검사는 컴파일 시점이 아닌 런타임(실행 시점)에 수행됩니다.이 dynamic 형식은 C# 4.0에서 처음 도입되었으며, 컴파일 타임의 엄격한 타입 검사를 우회할 수 있도록 설계되었습니다.dynamic 형식 선언 문법dynamic 변수를 선언하는 기본 문법은 다음과 같습니다.dynamic <변수명> = 값;object 형식과의 차이점dynamic 형식은 object

  16. C#에서 가변 배열(Jagged Array) 선언하고 사용하는 방법

    C#에서 가변 배열(Jagged Array)은 배열의 배열을 의미합니다. 일반적인 2차원 배열과 달리 각 행(내부 배열)의 길이가 서로 다를 수 있어, 메모리를 효율적으로 활용할 수 있다는 장점이 있습니다.가변 배열 선언하기int 타입의 요소를 담는 points라는 이름의 가변 배열은 다음과 같이 선언할 수 있습니다.int[][] points;가변 배열 초기화하기선언 후에는 각 내부 배열에 실제 값을 할당하여 초기화합니다.int[][] points = new int[][]{new int[]{10,5}, new int[]{30,40}

  17. C#에서 메서드를 정의하는 방법 완벽 가이드

    메서드(Method)는 하나의 작업을 수행하기 위해 함께 묶인 명령문들의 집합입니다. 모든 C# 프로그램에는 반드시 Main이라는 이름의 메서드를 포함하는 클래스가 최소 하나 이상 존재합니다.메서드를 정의한다는 것은 곧 메서드의 구조를 이루는 요소들을 선언하는 작업입니다. C#에서 메서드를 정의하는 기본 문법은 다음과 같습니다.<접근 지정자> <반환 타입> <메서드 이름>(매개변수 목록) { 메서드 본문}메서드 정의의 핵심 요소접근 지정자(Access Specifier) − 다른 클래스에서 해당

  18. C#에 전역 변수가 없는 이유와 네임스페이스 별칭(::) 활용 방법

    C#에는 왜 전역 변수가 없을까?C#은 C++과 달리 전역 변수(global variable) 개념을 지원하지 않습니다. 이는 의도적인 언어 설계 결정입니다. C#의 창시자인 앤더스 헤일스버그(Anders Hejlsberg)는 전역 상태가 코드의 예측 가능성을 떨어뜨리고 디버깅을 어렵게 만든다고 보았기 때문입니다.대신 C#에서는 모든 변수와 메서드가 반드시 클래스나 구조체 같은 타입 내부에, 그리고 그 타입은 반드시 네임스페이스(namespace) 안에 선언되어야 합니다. 이러한 구조 덕분에 코드의 소속 관계가 명확해지고, 이름 충

  19. C# 다차원 배열 선언과 초기화 방법 총정리

    C#은 다차원 배열(Multidimensional Array)을 지원합니다. 다차원 배열이란 두 개 이상의 차원을 가진 배열을 의미하며, 표 형태의 데이터를 다룰 때 특히 유용합니다.2차원 배열 선언하기문자열 타입의 2차원 배열은 다음과 같이 선언할 수 있습니다.string[] names;2차원 배열은 x개의 행(row)과 y개의 열(column)로 구성된 테이블 형태로 생각할 수 있습니다. 각 요소는 행과 열의 인덱스 조합으로 접근하게 됩니다.다차원 배열 초기화하기다차원 배열은 각 행에 해당하는 값을 중괄호({})로 묶어 나열하는

  20. C# 네임스페이스(Namespace) 정의 방법과 사용 예제

    네임스페이스(namespace)는 한 집합의 이름을 다른 이름들과 분리하여 관리할 수 있도록 설계된 기능입니다. 이를 통해 클래스, 함수, 변수 등의 이름이 서로 충돌하지 않도록 할 수 있습니다.네임스페이스 정의 문법네임스페이스 정의는 namespace 키워드로 시작하며, 그 뒤에 네임스페이스 이름을 작성합니다. 기본 문법은 다음과 같습니다.namespace namespace_name { // 코드 선언 }C# 네임스페이스 사용 예제다음 예제는 C#에서 두 개의 서로 다른 네임스페이스를 정의하고 활용하는 방법을 보여줍니다. 각 네임

Total 2668 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:10/134  20-컴퓨터/Page Goto:1 4 5 6 7 8 9 10 11 12 13 14 15 16