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

C#

  1. C# 가상 함수(virtual)란? 개념부터 예제까지 한 번에 이해하기

    C#에서 virtual(가상) 키워드는 메서드, 속성(property), 인덱서, 이벤트를 수정하는 데 사용됩니다. 기반 클래스(부모 클래스)에 정의된 함수를 상속받는 파생 클래스에서 각자의 방식으로 다시 구현하고 싶을 때 가상 함수를 활용합니다.가상 함수는 상속 관계에 있는 클래스마다 서로 다르게 구현될 수 있으며, 어떤 함수가 호출될지는 컴파일 시점이 아닌 런타임에 결정됩니다. 이것이 바로 C# 다형성(Polymorphism)의 핵심 원리입니다.가상 함수 선언 방법메서드 앞에 virtual 키워드를 붙이면 해당 메서드는 파생 클

  2. C# StringWriter와 StringReader 완벽 비교: 개념, 차이점, 실전 예제

    C#에서 StringWriter와 StringReader는 메모리상의 문자열을 대상으로 입출력을 처리하는 클래스입니다. StringWriter는 TextWriter를 상속하고, StringReader는 TextReader를 상속합니다. 두 클래스를 함께 사용하면 파일이나 네트워크 스트림 없이도 문자열 데이터를 스트림처럼 자유롭게 읽고 쓸 수 있습니다. StringWriter란? StringWriter는 문자열 버퍼에 정보를 기록하기 위한 TextWriter 구현체입니다. 파일 시스템에 접근하지 않고 StringBuilder 내부에

  3. C#에서 컬렉션(List)을 배열(Array)로 복사하는 방법

    C#에서 List<string>과 같은 컬렉션을 배열로 복사할 때 가장 간단한 방법은 CopyTo() 메서드를 사용하는 것입니다. 이 메서드는 컬렉션의 모든 요소를 지정된 배열의 첫 번째 인덱스부터 순서대로 복사해 줍니다.1단계: 컬렉션 생성하기먼저 복사할 대상이 되는 컬렉션을 다음과 같이 설정합니다.List<string> list1 = new List<string>();list1.Add(Car);list1.Add(Bus);list1.Add(Motorbike);list1.Add(Train);2단계:

  4. C#에서 string과 String의 차이점 완벽 정리

    C#을 배우다 보면 string과 String이라는 두 가지 표기를 접하게 됩니다. 이 둘은 과연 다른 타입일까요? 결론부터 말하면 기능적으로 완전히 동일합니다.string과 String의 관계String은 .NET의 실제 클래스인 System.String을 가리키는 반면, string은 C#에서 제공하는 별칭(alias)입니다. 즉, 컴파일러가 string을 만나면 자동으로 System.String으로 해석하기 때문에 두 표기는 같은 타입을 의미합니다.사용 예시string str = Welcome!;위 코드처럼 일반적인 변수 선언

  5. C# 리터럴과 상수의 차이점, 핵심 개념 쉽게 이해하기

    C# 상수(Constant)와 리터럴(Literal)이란?상수(constant)는 프로그램이 실행되는 동안 변경할 수 없는 고정된 값을 의미합니다. 이러한 고정값을 프로그래밍에서는 흔히 리터럴(literal)이라고도 부릅니다.상수는 정수형 상수, 부동 소수점 상수, 문자 상수, 문자열 리터럴 등 기본 데이터 타입 어느 것이든 될 수 있으며, 이 외에도 열거형(enum) 상수 역시 사용할 수 있습니다.정수 리터럴(Integer Literal)정수 리터럴은 10진수 또는 16진수 형태로 표현할 수 있습니다. 진법(base)을 지정하려면

  6. C#에서 인터페이스와 클래스의 차이점은 무엇일까?

    C# 프로그래밍에서 인터페이스(Interface)와 클래스(Class)는 객체 지향 설계의 핵심 요소이지만, 그 역할과 특성은 확연히 다릅니다. 두 개념을 정확히 이해하면 더 유연하고 유지보수하기 좋은 코드를 작성할 수 있습니다.인터페이스는 필드나 메서드 구현부가 없는 일종의 설계 규격입니다. 즉, 스스로 정의한 메서드를 직접 구현할 수 없으며, 오직 멤버의 선언만 포함합니다. 반면 클래스는 인터페이스에 선언된 메서드를 실제로 구현하는 역할을 담당합니다.인터페이스(Interface)란?인터페이스는 속성(Property), 메서드(M

  7. C#에서 String.Copy()와 String.Clone() 메서드의 차이점 완벽 정리

    C# String.Copy()와 String.Clone() 메서드란?C#에서 문자열을 다루다 보면 String.Copy()와 String.Clone() 두 메서드가 자주 혼동됩니다. 두 메서드 모두 문자열과 관련이 있지만, 내부적으로 동작하는 방식은 완전히 다릅니다. 이번 글에서는 두 메서드의 차이점을 예제 코드와 실행 결과를 통해 자세히 살펴보겠습니다.String.Copy() 메서드String.Copy()는 지정된 문자열과 동일한 값을 가지는 새로운 String 인스턴스를 생성합니다. 즉, 기존 문자열과 같은 내용을 담은 완전히

  8. C#으로 최대공약수(GCD)와 최소공배수(LCM) 구하는 프로그램 작성 방법

    최대공약수(GCD)란?GCD(Greatest Common Divisor, 최대공약수)는 두 개 이상의 정수를 모두 나눌 수 있는 가장 큰 양의 정수를 의미합니다. 예를 들어 10과 16의 최대공약수는 2입니다.최소공배수(LCM)란?LCM(Least Common Multiple, 최소공배수)은 두 수 모두로 나누어 떨어지는 가장 작은 정수를 뜻합니다. 10과 16의 경우 최소공배수는 80이 됩니다.다음 예제에서는 유클리드 호제법(Euclidean Algorithm)을 사용하여 10과 16의 GCD를 먼저 구한 뒤, 이를 활용해 LCM

  9. C#으로 기본 산술 연산(사칙연산) 프로그램 작성하기

    C#에서는 다양한 산술 연산자(arithmetic operators)를 사용하여 숫자 계산을 손쉽게 수행할 수 있습니다. 이번 글에서는 가장 기본이 되는 네 가지 연산자를 살펴보고, 이를 활용한 간단한 예제 프로그램을 함께 작성해 보겠습니다.C#의 기본 산술 연산자C#에서 자주 사용되는 대표적인 산술 연산자는 다음과 같습니다.번호연산자 및 설명1+두 피연산자를 더합니다 (덧셈)2-첫 번째 피연산자에서 두 번째 피연산자를 뺍니다 (뺄셈)3*두 피연산자를 곱합니다 (곱셈)4/분자를 분모로 나눕니다 (나눗셈)위 연산자들을 활용하면 정수형

  10. C# String.Copy() vs String.CopyTo(): 두 메서드의 차이점 완벽 정리

    String.CopyTo() 메서드란?String.CopyTo() 메서드는 문자열의 특정 부분에 있는 문자들을 추출하여 지정된 문자 배열(char[])에 복사하는 기능을 합니다. 즉, 원본 문자열에서 일련의 문자들을 가져와 문자 배열에 배치할 수 있습니다.이 메서드는 네 개의 매개변수를 사용합니다.sourceIndex: 복사를 시작할 원본 문자열의 인덱스destination: 복사 대상이 되는 문자 배열destinationIndex: 배열에서 복사가 시작될 위치count: 복사할 문자의 개수String.CopyTo() 사용 예제us

  11. C# 메서드 숨기기(Shadowing)란? new 키워드 완벽 정리

    메서드 숨기기(Method Hiding)란 무엇인가?C#에서 메서드 숨기기(Method Hiding)는 섀도잉(Shadowing)이라고도 불리는 기능입니다. 자식 클래스가 부모 클래스에 이미 존재하는 메서드와 동일한 이름의 자체 버전을 정의하는 것을 의미하며, 이때 오버라이드(override) 키워드 없이 new 키워드만 사용하면 됩니다.즉, 자식 클래스는 부모로부터 물려받은 메서드를 그대로 사용하지 않고, 같은 이름의 자신만의 구현으로 대체하게 됩니다.오버라이딩과의 차이점메서드 숨기기는 오버라이딩과 혼동하기 쉽지만, 두 방식에는

  12. C#으로 입력한 숫자가 암스트롱 수(Armstrong Number)인지 확인하는 방법

    암스트롱 수란 무엇일까요?어떤 숫자의 각 자릿수를 세제곱하여 모두 더한 합이 원래 숫자 자체와 같을 때, 그 수를 암스트롱 수(Armstrong Number)라고 합니다.예를 들어 153의 경우 1³ + 5³ + 3³ = 1 + 125 + 27 = 153이 되므로, 153은 암스트롱 수입니다.구현 원리C#에서 이를 확인하려면 먼저 나머지 연산자(%)를 사용해 숫자의 마지막 자릿수를 하나씩 추출하고, 추출한 자릿수를 세제곱하여 합계에 누적합니다.rem = i % 10;sum = sum + rem*rem*rem;그다음 루프 반복이 끝난

  13. C# 정적 바인딩(Static Binding)이란? 개념부터 예제까지 쉽게 이해하기

    정적 바인딩(Static Binding)은 프로그램이 실행되기 전, 즉 컴파일 시점에 함수와 객체를 연결하는 메커니즘을 말합니다. 런타임에 어떤 함수가 호출될지 결정하는 동적 바인딩과 달리, 정적 바인딩은 컴파일러가 미리 호출 대상을 확정하기 때문에 실행 속도가 빠르다는 장점이 있습니다.C#에서는 정적 다형성(Static Polymorphism)을 구현하기 위해 두 가지 기법을 제공합니다.함수 오버로딩(Function Overloading)연산자 오버로딩(Operator Overloading)1. 함수 오버로딩(Function Ov

  14. C# 가변(Mutable) 문자열 vs 불변(Immutable) 문자열, 핵심 차이점 총정리

    C#에서 문자열을 다루다 보면 string과 StringBuilder, 두 가지 타입을 자주 접하게 됩니다. 겉보기에는 비슷해 보이지만, 내부적으로 문자열 값을 저장하고 변경하는 방식이 완전히 다르며, 이는 프로그램의 성능과 메모리 사용량에 큰 영향을 미칩니다. 이번 글에서는 가변 문자열과 불변 문자열의 차이를 예제 코드와 함께 살펴보겠습니다. 가변 문자열(Mutable String): StringBuilder C#에서 StringBuilder는 대표적인 가변(mutable) 문자열입니다. StringBuilder를 사용하면 이미

  15. C# BitArray 클래스란? 주요 속성과 IsReadOnly 활용 예제

    C#의 BitArray 클래스는 비트(bit) 데이터를 저장해야 하는데, 그 개수를 사전에 정확히 알 수 없는 경우에 유용하게 사용됩니다. 비트 단위로 데이터를 관리할 수 있어 메모리 효율이 중요한 프로그램에서 특히 유용한 컬렉션입니다.BitArray 클래스의 주요 속성BitArray 클래스에서 자주 사용되는 대표적인 속성은 다음과 같습니다.번호속성 및 설명1CountBitArray에 포함된 요소(비트)의 총 개수를 가져옵니다.2IsReadOnlyBitArray가 읽기 전용인지 여부를 나타내는 값을 가져옵니다.3ItemBitArra

  16. C# 스레드(Thread) 클래스의 주요 속성 완벽 정리

    스레드(Thread)란 프로그램의 실행 경로를 의미하며, 각 스레드는 하나의 독립적인 제어 흐름을 정의합니다. 하나의 프로세스 안에서 여러 스레드가 동시에 실행되면서 작업을 병렬로 처리할 수 있게 해주는 것이 바로 멀티스레딩입니다.C#에서는 System.Threading.Thread 클래스를 통해 스레드를 생성하고 제어할 수 있으며, 이 클래스는 스레드의 상태와 동작을 확인하거나 변경할 수 있는 다양한 속성(Property)을 제공합니다. 아래 표에서 Thread 클래스의 대표적인 12가지 속성을 살펴보겠습니다.Thread 클래스의

  17. C# 인터페이스와 추상 클래스의 차이점 완벽 정리

    C#에서 인터페이스(Interface)는 속성(Property), 메서드(Method), 이벤트(Event) 같은 멤버들을 정의하는 일종의 계약(Contract) 역할을 합니다. 인터페이스에는 멤버의 선언만 포함될 뿐 실제 구현 코드는 없으며, 구체적인 기능 구현은 해당 인터페이스를 상속받는 클래스의 책임입니다.추상 클래스(Abstract Class)도 어느 정도 비슷한 목적으로 사용되지만, 주로 기반 클래스에서 일부 메서드만 선언해 두고 나머지 구체적인 기능은 파생 클래스가 구현하도록 설계할 때 활용됩니다.인터페이스와 추상 클래스

  18. C# break와 continue 문의 차이점 완벽 정리

    C#에서 반복문의 흐름을 제어하는 대표적인 방법으로 break 문과 continue 문이 있습니다. 두 문장 모두 반복문 내부에서 사용되지만, 동작 방식과 용도는 완전히 다릅니다.break 문이란?break 문은 현재 실행 중인 반복문을 즉시 종료합니다. break가 실행되면 반복문 전체가 중단되고, 프로그램의 제어 흐름은 반복문 바로 다음에 위치한 문장으로 이동합니다.즉, break는 반복문을 완전히 빠져나간다는 의미로, 특정 조건을 만족했을 때 더 이상 반복을 진행할 필요가 없는 경우에 유용하게 사용됩니다.continue 문이란

  19. C# System.Console 클래스란? 주요 메서드 총정리

    C#에서 System.Console 클래스는 콘솔 애플리케이션의 표준 입력(stdin), 표준 출력(stdout), 표준 오류(stderr) 스트림을 담당하는 핵심 클래스입니다. 이 클래스를 활용하면 콘솔 화면에 텍스트를 출력하거나, 사용자로부터 입력을 받고, 오류 메시지를 처리하는 등 콘솔 기반 프로그램 개발에 필요한 거의 모든 작업을 수행할 수 있습니다.System.Console 클래스의 주요 메서드System.Console 클래스에는 다양한 메서드가 제공되며, 대표적인 메서드와 그 설명은 아래 표와 같습니다. 자세한 내용은 M

  20. C#으로 처음 100개의 홀수를 생성하고 출력하는 방법

    C#에서 처음 100개의 홀수를 생성하려면 1부터 100까지 반복하는 for 루프를 사용하면 됩니다. for (val = 1; val <= 100; val++) { } 루프 내부에는 홀수 여부를 판별하는 조건을 추가합니다. 어떤 수를 2로 나눈 나머지가 0이 아니라면(val % 2 != 0) 그 수는 홀수입니다. 이 조건을 만족하는 값만 화면에 출력하도록 처리합니다. for (val = 1; val <= 100; val++) { if (val % 2 != 0) { Console.WriteLine(va

Total 2668 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:31/134  20-컴퓨터/Page Goto:1 25 26 27 28 29 30 31 32 33 34 35 36 37