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

C#

  1. C# BinaryReader 클래스로 이진 데이터 읽는 방법

    C# BinaryReader 클래스란?스트림(Stream)에서 이진(binary) 데이터를 읽어야 할 때는 C#의 BinaryReader 클래스를 사용하면 됩니다. BinaryReader는 기본 데이터 타입(double, string, int 등)을 이진 형식 그대로 손쉽게 읽어올 수 있도록 다양한 메서드를 제공합니다.BinaryReader 클래스는 System.IO 네임스페이스에 포함되어 있으며, 사용하기 위해서는 해당 네임스페이스를 참조해야 합니다.BinaryReader 주요 메서드ReadDouble(): 스트림에서 8바이트 부

  2. C# BitArray 클래스의 Item 속성이란? 인덱서 활용 방법까지 한눈에

    C#의 BitArray 클래스에서 Item 속성은 비트 배열 내 특정 위치에 저장된 비트(bit) 값을 가져오거나 새로 설정하는 역할을 합니다.C#에서는 이러한 Item 속성을 직접 구현하지 않고, this 키워드를 사용해 인덱서(indexer)를 정의하는 것이 표준적인 방식입니다. 인덱서가 정의되어 있으면 myCollection[index] 형태로 일반 배열처럼 요소에 간편하게 접근할 수 있습니다.BitArray Item 속성 사용 예제다음 코드는 bool 배열을 기반으로 BitArray 객체를 생성하고, Item 속성(인덱서)을

  3. C# BinaryWriter 클래스 사용 방법 – 스트림에 바이너리 데이터 쓰기

    C#에서 스트림(stream)에 바이너리 데이터를 기록해야 한다면 BinaryWriter 클래스를 사용하면 됩니다. 이 클래스는 System.IO 네임스페이스에 포함되어 있으며, 숫자·문자열 등 다양한 형식의 데이터를 바이너리 형태로 파일이나 스트림에 손쉽게 기록할 수 있게 도와줍니다.BinaryWriter와 BinaryReader 기본 구현아래는 BinaryWriter로 데이터를 기록하고, BinaryReader로 다시 읽어오는 전체 예제입니다.static void WriteMe() {    u

  4. C#.NET 액세스 한정자(Access Specifier)의 종류와 특징 완벽 정리

    C#에서 액세스 한정자(Access Specifier)는 클래스의 멤버 변수와 메서드에 대한 접근 범위를 제어하는 키워드입니다. 이를 통해 코드의 보안성을 높이고 캡슐화(Encapsulation) 원칙을 실현할 수 있습니다. C#.NET에서 지원하는 대표적인 액세스 한정자는 다음과 같습니다.1. Public(공용) 액세스 한정자public으로 선언된 멤버는 동일한 프로젝트뿐 아니라 외부 어셈블리를 포함한 모든 클래스와 객체에서 자유롭게 접근할 수 있습니다. 주로 외부에 공개해야 하는 API나 공통 기능에 사용됩니다.2. Privat

  5. C# FileStream 클래스 사용법 완벽 가이드

    C# FileStream 클래스란?FileStream 클래스는 C#에서 파일을 읽고 쓰는 등의 파일 입출력 작업을 수행하기 위한 스트림을 제공하는 클래스입니다. System.IO 네임스페이스에 포함되어 있으며, 바이트 단위로 파일 데이터를 처리할 수 있어 텍스트뿐만 아니라 이미지, 동영상 등 다양한 형식의 파일을 다룰 때 유용합니다.FileStream 객체 생성 방법FileStream 객체는 아래와 같이 생성할 수 있습니다.FileStream fstream = new FileStream(d:\\new.txt, FileMode.Ope

  6. C#으로 폴더 크기 계산하기 – DirectoryInfo와 EnumerateFiles 활용법

    C#에서 특정 폴더의 전체 크기를 계산하려면 Directory.EnumerateFiles 메서드를 사용해 파일 목록을 가져온 후, 각 파일의 크기를 합산하면 됩니다. 이 글에서는 기본적인 폴더 크기 계산 방법부터 하위 폴더까지 포함하는 재귀적 계산 방법까지 단계별로 살펴봅니다.1. 폴더 크기 계산 기본 방법먼저 DirectoryInfo 클래스를 사용해 크기를 계산할 대상 폴더를 지정합니다.DirectoryInfo info = new DirectoryInfo(@D:/new);이어서 EnumerateFiles 메서드로 폴더 내 모든 파

  7. C#에서 재귀(Recursion)를 활용해 숫자의 거듭제곱을 계산하는 방법

    C#에서 재귀(recursion)를 사용하면 반복문 없이도 숫자의 거듭제곱을 간결하게 계산할 수 있습니다. 재귀란 함수가 자기 자신을 다시 호출하는 프로그래밍 기법으로, 문제를 더 작은 단위로 나누어 해결할 때 유용하게 활용됩니다. 재귀의 핵심 원리 거듭제곱 계산에서 재귀의 핵심은 다음 조건문에 있습니다. 지수(p)가 0이 아니면, 함수가 자기 자신을 호출하며 지수를 하나씩 줄여가는 방식입니다. if (p != 0) { return (n * power(n, p - 1)); } 위 코드에서 n은 밑(base)이 되는 숫자

  8. C#에서 사용자 지정 메서드를 정의하고 호출하는 방법

    C#에서 사용자 지정 메서드를 정의하는 방법 C#에서 사용자 지정(커스텀) 메서드를 정의할 때는 다음과 같은 기본 구문을 사용합니다. <Access Specifier> <Return Type> <Method Name>(Parameter List) {     Method Body } 각 구성 요소의 의미는 다음과 같습니다. Access Specifier(접근 지정자): 메서드에 접근할 수 있는 범위를 결정합니다. 예를 들어 public으로 선언하면 클래스 외부에서도

  9. C#에서 분수 거듭제곱을 계산하는 방법 – Math.Pow 메서드 완벽 가이드

    C#에서 분수(소수점) 거듭제곱을 계산하려면 Math.Pow 메서드를 사용하면 됩니다. 이 메서드는 System 네임스페이스에 포함되어 있으며, 밑(base)과 지수(exponent) 두 개의 double 형 매개변수를 받아 거듭제곱 결과를 반환합니다.Math.Pow 메서드 기본 사용법Math.Pow의 기본 구문은 다음과 같습니다.double result = Math.Pow(base, exponent);예를 들어, 5의 3.7제곱을 계산하려면 아래와 같이 작성합니다.double res = Math.Pow(5, 3.7);지수가 정수가

  10. C# 메서드 매개변수 전달 방법: 값에 의한 전달(Pass by Value) 완벽 정리

    C#에서 메서드에 매개변수를 전달하는 가장 기본적인 방식은 값에 의한 전달(Pass by Value)입니다. 이 방식에서는 메서드가 호출되는 순간 각각의 값 매개변수(value parameter)마다 새로운 저장 공간이 생성됩니다.그리고 실제 인수(argument)의 값이 이 새로운 저장 공간으로 복사됩니다. 따라서 메서드 내부에서 매개변수의 값을 변경하더라도, 호출 측의 원본 변수에는 아무런 영향을 주지 않습니다.값에 의한 전달의 핵심 특징메서드 호출 시 매개변수별로 독립된 메모리 공간이 할당됩니다.인수의 값이 복사되어 전달되므로

  11. C# 포인터란 무엇인가? 개념부터 unsafe 코드 활용까지

    C# 포인터(Pointer)란? 포인터(pointer)는 다른 변수의 주소, 즉 특정 메모리 위치의 직접적인 주소를 값으로 가지는 변수입니다. 일반 변수가 데이터 자체를 저장한다면, 포인터는 그 데이터가 위치한 메모리상의 주소를 가리킨다는 점에서 차이가 있습니다. 포인터 선언 문법 포인터를 선언하는 기본 문법은 다음과 같습니다. type *var-name; 예를 들어 double 형 변수를 가리키는 포인터는 아래와 같이 선언할 수 있습니다. double *z; /* double형을 가리키는 포인터 */ unsafe 한정자와 포인

  12. C#에서 메서드의 매개변수로 포인터를 전달하는 방법

    C#에서는 unsafe 한정자를 사용하면 포인터를 직접 다룰 수 있으며, 이를 메서드의 매개변수로 전달하는 것도 가능합니다. 아래 단계를 따라 포인터를 메서드에 전달하는 방법을 살펴보겠습니다. 1단계: unsafe 한정자로 swap 함수 작성 먼저 두 정수 값의 위치를 서로 바꾸는 swap 함수를 만듭니다. 포인터를 사용하므로 반드시 unsafe 한정자를 붙여야 합니다. public unsafe void swap(int* p, int *q) { int temp = *p; *p = *q; *q = temp; }

  13. C# 메서드 오버로딩이란? 개념부터 실전 예제까지 한눈에 이해하기

    C# 메서드 오버로딩(Method Overloading)이란?C#에서 메서드 오버로딩은 이름은 같지만 매개변수가 서로 다른 두 개 이상의 메서드를 정의하는 것을 말합니다. 컴파일러는 호출 시 전달되는 인자의 개수나 자료형을 기준으로 어떤 메서드를 실행할지 자동으로 판단합니다.메서드 오버로딩을 구현하는 방법은 크게 두 가지입니다.인자(매개변수)의 개수를 다르게 하는 방법인자의 데이터 타입을 다르게 하는 방법예를 들어 숫자들의 곱셈 결과를 출력하는 함수가 필요하다고 가정해 보겠습니다. 이때 오버로딩된 메서드들은 모두 같은 이름을 가지지

  14. C# 상속(Inheritance) 완벽 가이드: 개념부터 예제까지

    C#에서 상속(Inheritance)이란? 상속(Inheritance)은 객체 지향 프로그래밍(OOP)의 핵심 개념 중 하나로, 하나의 클래스를 다른 클래스를 기반으로 정의할 수 있게 해주는 기능입니다. 상속을 활용하면 애플리케이션을 더 쉽게 만들고 유지보수할 수 있으며, 이미 작성된 코드의 기능을 재사용할 수 있어 개발 시간도 크게 단축됩니다. 상속은 기본 클래스(Base Class)와 파생 클래스(Derived Class)라는 두 가지 개념을 바탕으로 동작합니다. 파생 클래스는 기본 클래스의 필드(데이터)와 메서드(함수)를 물려

  15. C# 프로그램의 주요 구성 요소 완벽 정리

    C# 프로그램은 여러 가지 필수 요소들로 구성됩니다. C# 프로그램의 주요 구성 요소는 다음과 같습니다.네임스페이스(Namespace) 선언클래스(Class)클래스 메서드(Method)클래스 특성(Attribute)Main 메서드문(Statement)과 식(Expression)주석(Comment)다음은 간단한 C# 프로그램을 작성하는 방법을 보여주는 예제입니다.예제 코드using System; namespace Demo { class Program { static void Main(string[] args)

  16. C# Thread 클래스의 주요 속성과 메서드 총정리

    스레드(Thread)는 경량 프로세스로, 하나의 프로그램 내에서 여러 작업을 동시에 수행할 수 있게 해주는 실행 단위입니다. 현대 운영체제가 동시성(Concurrency) 프로그래밍을 구현하는 가장 대표적인 방식이 바로 스레드를 활용하는 것입니다.C#에서는 System.Threading 네임스페이스의 Thread 클래스를 통해 스레드를 생성하고 제어할 수 있습니다. 이 글에서는 Thread 클래스에서 자주 사용되는 핵심 속성과 메서드를 정리해 소개합니다.Thread 클래스의 주요 속성번호속성 및 설명1CurrentContext현재

  17. C# 조건부 전처리기 지시문(#if)이란? 개념부터 예제까지 한눈에 보기

    C# 조건부 전처리기 지시문이란?C#에서는 #if 지시문을 사용해 조건부 전처리기(conditional directive)를 작성할 수 있습니다. 조건부 전처리기는 특정 심볼(symbol)이 참(true)으로 평가되는지 검사할 때 유용하게 쓰입니다. 평가 결과가 참이라면, 컴파일러는 #if 지시문부터 다음 지시문 사이에 있는 모든 코드를 컴파일 대상으로 삼습니다.조건부 컴파일은 디버그 빌드와 릴리스 빌드처럼 환경에 따라 다른 코드를 실행해야 할 때 특히 유용합니다. 이러한 지시문은 실제 컴파일이 시작되기 전 단계에서 처리된다는 점이

  18. C# 컴파일 타임 다형성(정적 다형성)이란? 개념부터 함수 오버로딩 예제까지

    다형성(Polymorphism)은 크게 정적 다형성(Static Polymorphism)과 동적 다형성(Dynamic Polymorphism)으로 나눌 수 있습니다. 정적 다형성에서는 함수에 대한 응답이 컴파일 시간(Compile Time)에 결정되고, 동적 다형성에서는 실행 시간(Run-time)에 결정됩니다.컴파일 시간 바인딩(초기 바인딩)컴파일 시간에 함수와 객체를 연결하는 과정을 초기 바인딩(Early Binding)이라고 하며, 이를 정적 바인딩(Static Binding)이라고도 부릅니다. C#에서는 정적 다형성을 구현하

  19. C# 삼항 연산자(조건부 연산자)란? 개념부터 예제까지 총정리

    C#에서 삼항 연산자(Ternary Operator)는 조건부 연산자(Conditional Operator)라고도 불리며, 세 개의 피연산자를 받아 불리언(Boolean) 표현식을 평가하는 연산자입니다. 간단한 if-else 문을 한 줄로 대체할 수 있어 코드를 훨씬 간결하게 작성할 수 있다는 장점이 있습니다.기본 사용 형태는 다음과 같습니다.y = (x == 1) ? 70 : 100;위 코드의 동작 방식을 살펴보면 다음과 같습니다.첫 번째 피연산자(x == 1)가 참(true)으로 평가되면 두 번째 피연산자(70)가 결과값이 됩니

  20. C# 컴포지션(Composition)이란 무엇인가?

    C# 컴포지션(Composition)의 개념컴포지션(Composition)은 객체 지향 프로그래밍에서 두 객체 간의 부분-전체(part-of) 관계를 표현하는 방식입니다. 컴포지션은 집합(Aggregation)의 특수한 형태로, 부모 객체가 삭제되면 자식 객체도 함께 소멸한다는 점이 가장 큰 특징입니다.즉, 전체 객체와 부분 객체의 생명주기가 완전히 묶여 있어서, 전체가 사라지면 그에 속한 부분도 더 이상 존재할 수 없습니다.예시: 자동차와 엔진자동차(Car)는 엔진(Engine)을 가지고 있습니다. 만약 자동차가 폐차되어 파괴된다

Total 2668 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:17/134  20-컴퓨터/Page Goto:1 11 12 13 14 15 16 17 18 19 20 21 22 23