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

C#

  1. C#에서 코드 재사용성을 높이는 방법 – 인터페이스 활용하기

    C#에서 코드 재사용성을 높이는 핵심: 인터페이스C#에서 코드를 재사용 가능하게 만들고 싶다면 인터페이스(Interface)를 활용하는 것이 가장 효과적입니다. 인터페이스는 속성(property), 메서드(method), 이벤트(event) 같은 멤버들을 정의하며, 이 멤버들이 곧 인터페이스의 구성 요소가 됩니다.중요한 점은 인터페이스에는 멤버의 선언부만 포함된다는 것입니다. 실제 구현은 이를 상속받는 파생 클래스의 책임이며, 덕분에 인터페이스는 파생 클래스가 반드시 따라야 할 표준적인 구조를 제공하는 역할을 합니다.인터페이스 예제

  2. C# 정규식(Regex)으로 일치하는 하위 문자열을 찾는 방법 – \b 단어 경계 완벽 정리

    C#에서는 System.Text.RegularExpressions 네임스페이스의 Regex 클래스를 활용하면 정규식(Regular Expression)을 통해 문자열 안에서 원하는 하위 문자열을 간편하게 검색할 수 있습니다. 이 글에서는 특정 단어 make를 찾는 과정을 예제 코드와 함께 단계별로 살펴보겠습니다. 1. 대상 문자열 준비하기 먼저 검색 대상이 되는 문자열은 다음과 같습니다. string str = My make ; 2. 정규식 패턴 작성하기 make라는 하위 문자열을 찾으려면 아래와 같은 정규식 패턴을 사용합

  3. C# 형식화된 출력 완벽 가이드: 실수와 날짜 서식 지정하기

    C#에서는 Console.WriteLine()과 String.Format() 메서드를 활용하면 숫자나 날짜를 원하는 형식으로 깔끔하게 출력할 수 있습니다. 이 글에서는 double(실수) 타입과 DateTime(날짜·시간) 타입의 대표적인 서식 지정 방법을 예제 코드와 실행 결과와 함께 살펴보겠습니다. 1. 실수(double) 타입의 형식화된 출력 double 타입 값의 출력 서식을 지정하는 대표적인 방법은 다음과 같습니다. {0:0.000} — 소수점 이하 세 자리까지 고정하여 표시합니다. 자릿수가 부족하면 0으로 채워지고, 초

  4. C#에서 문자열 리터럴 형식 지정하기 – String.Format 활용법

    C#에서 문자열 리터럴의 형식을 지정하려면 String.Format 메서드를 사용합니다. 이 메서드는 복합 형식 지정(composite formatting)을 지원하며, 중괄호 {} 안에 인덱스와 선택적으로 형식 지정자를 넣어 원하는 출력 형태를 만들 수 있습니다.아래 예제에서 0은 해당 위치에 문자열 값이 삽입될 객체의 인덱스를 나타냅니다.기본 사용 예제using System; namespace Demo { class Test { static void Main(string[] args) {

  5. C#으로 정수 목록에서 중복 값 찾아 출력하기

    정수 목록에서 중복된 값을 찾아 출력하려면 Dictionary 컬렉션과 ContainsKey() 메서드를 활용하면 됩니다.핵심 아이디어Dictionary의 키(key)에 각 정수를 저장하고, 이미 존재하는 키라면 해당 값(value)을 1씩 증가시키는 방식입니다. 이렇게 하면 각 숫자가 몇 번 등장했는지 손쉽게 집계할 수 있으며, 값이 2 이상인 항목이 곧 중복된 숫자입니다.예제 코드먼저 중복이 포함된 정수 배열을 선언합니다.int[] arr = { 3, 6, 3, 8, 9, 2,

  6. C#에서 List를 문자열로 변환하는 방법 (string.Join 활용)

    C# 프로그래밍에서 List(리스트)에 담긴 여러 요소를 하나의 문자열로 합쳐야 하는 경우가 자주 있습니다. 예를 들어, 콘솔 출력이나 로그 기록, 화면 표시를 위해 리스트 데이터를 문자열 형태로 변환해야 할 때가 그렇습니다.이럴 때 가장 간단하고 널리 사용되는 방법은 string.Join() 메서드를 활용하는 것입니다. 이 메서드는 지정한 구분자(delimiter)를 기준으로 리스트의 모든 요소를 하나의 문자열로 연결해 줍니다.1단계: 리스트 선언하기먼저 문자열을 저장할 List를 선언합니다.List<string> l

  7. C# 배열에서 두 정수의 합이 특정 값과 일치하는지 확인하는 방법

    배열에 저장된 여러 정수 중에서 두 정수의 합이 우리가 지정한 특정 값과 일치하는지 확인해야 하는 경우가 종종 있습니다. 이 글에서는 C#의 이중 반복문을 활용해 이 문제를 간단하게 해결하는 방법을 알아보겠습니다.문제 상황먼저 다음과 같은 정수 배열이 있다고 가정해 보겠습니다.int[] arr = new int[] { 7, 4, 6, 2 };그리고 찾고자 하는 목표 값(두 정수의 합과 일치해야 하는 값)은 다음과 같습니다.int res = 8;즉, 배열에 있는 두 요소를 더했을 때 그 결과가 8이 되는 조합이 존재하는지 확인하는 것

  8. C#으로 정수 배열의 고유한 요소 출력하기 – Dictionary 활용 방법

    개요정수 배열에서 고유한(distinct) 요소만 골라내어 출력하려면 Dictionary<int, int> 컬렉션을 활용하는 것이 효과적입니다. 딕셔너리는 키(Key)와 값(Value) 쌍으로 데이터를 저장하기 때문에, 배열의 각 요소를 키로 사용하고 해당 요소의 등장 횟수를 값으로 기록할 수 있습니다.1. 배열과 딕셔너리 선언먼저 정수 배열과 빈 딕셔너리를 준비합니다.int[] arr = {    88,    23,   &

  9. C#으로 통화 변환하기: 달러를 루피로 바꾸는 프로그램

    C#을 활용한 통화 변환 프로그램프로그래밍에서 환율 계산은 자주 사용되는 기능 중 하나입니다. 이번 글에서는 C#을 사용하여 미국 달러(USD)를 인도 루피(INR)로 변환하는 간단한 프로그램을 만들어 보겠습니다.예를 들어, 10달러가 인도 루피로 얼마인지 알고 싶다고 가정해 보겠습니다.1단계: 변수 선언먼저 필요한 변수들을 선언합니다. 달러 금액(usd), 루피 금액(inr), 그리고 현재 환율(val)을 저장할 세 개의 double형 변수가 필요합니다.double usd, inr, val;2단계: 값 설정 및 변환이제 달러 금액

  10. C#으로 짝수와 홀수를 서로 다른 배열로 분리하는 방법

    C#에서 배열에 담긴 정수들을 짝수와 홀수로 구분하여 각각 별도의 배열에 저장하는 방법을 알아보겠습니다. 핵심은 나머지 연산자(%)를 활용하는 것입니다.기본 원리먼저 결과를 저장할 두 개의 배열을 준비합니다. 하나는 짝수용, 다른 하나는 홀수용입니다.int[] arr2 = new int[5]; // 짝수 저장용 배열 int[] arr3 = new int[5]; // 홀수 저장용 배열배열의 요소를 2로 나누었을 때 나머지가 0이면 그 수는 짝수입니다. 이 조건을 만족하는 요소를 별도의 배열에 추가하면 됩니다. 아래 코드처럼 반복문을

  11. C#에서 12시간제 시간을 24시간제로 변환하는 방법

    C#에서는 DateTime 구조체와 사용자 지정 날짜·시간 서식 지정자를 활용하면 12시간제(AM/PM) 시간을 손쉽게 24시간제로 변환할 수 있습니다. 아래에서 단계별로 살펴보겠습니다.1단계: 12시간 형식의 시간 설정먼저 DateTime.Parse 메서드를 사용하여 12시간 형식의 시간 문자열을 DateTime 객체로 변환합니다.DateTime d = DateTime.Parse("05:00 PM");2단계: 24시간 형식으로 변환이제 ToString 메서드에 "HH:mm" 서식 지정자를 적용하

  12. C#으로 정수 배열의 모든 중복 요소 찾기: Dictionary 활용 완벽 가이드

    C#에서 정수 배열에 포함된 모든 중복 요소를 찾는 방법을 알아보겠습니다. 가장 널리 사용되는 접근 방식은 Dictionary를 활용해 각 요소의 등장 횟수를 세는 것입니다. 이 방법은 배열을 한 번만 순회하면 되므로 시간 복잡도 O(n)으로 매우 효율적입니다. 1단계: 중복 요소가 있는 배열 준비 먼저 중복된 값이 포함된 정수 배열을 선언합니다. int[] arr = {    24,    10,    56,    32, &n

  13. C#으로 리스트에서 최댓값, 최솟값, 두 번째로 큰 값, 두 번째로 작은 값 찾기

    C#에서는 LINQ를 활용하면 배열이나 리스트에 포함된 최댓값, 최솟값, 그리고 두 번째로 큰 값과 작은 값을 아주 간단하게 구할 수 있습니다. 이 글에서는 Max(), Min(), OrderBy() 등의 LINQ 메서드를 사용하는 방법을 예제와 함께 살펴보겠습니다.리스트 설정하기먼저 정수형 배열을 선언합니다.var val = new int[] { 99, 35, 26, 87 };최댓값 구하기Max() 메서드를 사용하면 컬렉션에서 가장 큰 숫자를 손쉽게 얻을 수 있습니다.val.Max(z => z);

  14. C# HashSet을 활용해 세 개의 배열에서 공통 요소 찾기

    개요 C#에서 여러 배열에 걸쳐 공통으로 존재하는 요소를 찾아야 할 때가 있습니다. 이 글에서는 세 개의 정수 배열을 HashSet으로 변환한 뒤, 세 개의 포인터를 이용해 공통 요소를 효율적으로 찾는 방법을 예제와 함께 알아봅니다. 1단계: 세 개의 배열 선언 먼저 비교할 세 개의 정수 배열을 준비합니다. int[] arr1 = { 99, 57, 63, 98 }; int[] arr2 = { 43, 99, 33, 57 }; int[] arr3 = { 99, 57, 42 }; 2단계: 배열을 HashSet으로 변환 각 배열을 Hash

  15. C# 개체 풀(Object Pool)이란? 개념부터 활용까지 한눈에 보기

    C# 개체 풀(Object Pool)이란?개체 풀(Object Pool)은 메모리, 데이터베이스 연결처럼 제한된 리소스의 사용 효율을 극대화하기 위해 고안된 소프트웨어 설계 기법입니다. 개체 풀에는 이미 생성되어 즉시 사용할 수 있는 상태의 개체들이 미리 준비되어 있으며, 필요할 때마다 새로 만들지 않고 기존 개체를 재사용함으로써 불필요한 오버헤드를 줄일 수 있습니다.개체 풀링의 두 가지 동작 방식개체 풀링은 크게 다음 두 가지 형태로 동작합니다.활성화(Activation): 개체가 필요해지면 풀(Pool)에서 해당 개체를 가져와

  16. C# 문자열에서 각 문자의 등장 횟수를 세는 프로그램 만들기

    C# 문자열에서 문자 발생 횟수 계산하기이번 글에서는 C#을 활용하여 문자열에 포함된 각 문자가 몇 번 등장하는지 계산하는 방법을 알아보겠습니다. 먼저 예시로 사용할 문자열은 다음과 같습니다.String s = mynameistomhanks;다음으로 크기 256의 정수 배열을 생성하고, 앞서 선언한 문자열과 함께 새로운 메서드에 전달합니다. 이 메서드가 문자열 내 각 문자의 등장 횟수를 계산하게 됩니다.static void calculate(String s, int[] cal) { for (int i = 0; i < s.Le

  17. C# StringTemplate 클래스로 더 읽기 쉬운 문자열 포맷팅하기

    C#에서 StringTemplate 클래스는 형식 문자열(format string)을 파싱하여 String.Format과 호환되도록 설계된 유틸리티입니다. 이 클래스는 다양한 확장 메서드를 제공하는 NString 라이브러리에 포함되어 있으며, 이를 통해 문자열 조작 작업을 훨씬 간편하게 처리할 수 있습니다.NString 라이브러리의 주요 확장 메서드NString 라이브러리가 제공하는 대표적인 확장 메서드는 다음과 같습니다.IsNullOrEmpty()IsNullOrWhiteSpace()Join()Truncate()Left()Right

  18. C# 추상화(Abstraction)란 무엇인가? 개념부터 예제까지 한눈에

    추상화와 캡슐화의 관계 추상화(Abstraction)와 캡슐화(Encapsulation)는 객체 지향 프로그래밍(OOP)에서 밀접하게 연관된 핵심 개념입니다. 추상화는 불필요한 세부 사항을 숨기고 필요한 정보만 외부에 노출하는 역할을 하며, 캡슐화는 프로그래머가 원하는 수준의 추상화를 실제로 구현할 수 있도록 도와주는 장치입니다. C#에서 추상화를 구현하는 방법 C#에서는 추상 클래스(abstract class)를 사용하여 추상화를 구현할 수 있습니다. 추상 클래스는 인터페이스의 일부 구현을 미리 제공하는 역할을 하며, 나머지 구

  19. C#에서 Java의 CopyOnWriteArrayList를 대체하는 방법: SynchronizedCollection 완벽 정리

    C#의 SynchronizedCollection: Java CopyOnWriteArrayList의 대안Java에는 스레드 안전성을 보장하는 CopyOnWriteArrayList 클래스가 있지만, C#에는 이와 동일한 이름의 클래스가 존재하지 않습니다. 그렇다면 C#에서는 어떤 것을 사용해야 할까요? 정답은 바로 SynchronizedCollection 클래스입니다.SynchronizedCollection은 특정 타입(T)의 객체들을 담는 스레드 세이프(thread-safe) 컬렉션으로, 내부 동기화 메커니즘을 통해 여러 스레드가 동

  20. C# 프로세스 동기화와 스레드 풀링 완벽 가이드

    C# 동기화란 무엇인가?동기화(Synchronization)를 활용하면 멀티스레드 애플리케이션에서 여러 스레드가 공유 리소스에 안전하게 접근하도록 조율할 수 있습니다. 동기화가 제대로 이루어지지 않으면 경쟁 상태(race condition)나 데이터 손상과 같은 심각한 문제가 발생할 수 있습니다.뮤텍스(Mutex)를 활용한 프로세스 간 동기화뮤텍스는 프로세스 간에 스레드를 동기화할 때 사용할 수 있는 강력한 도구입니다. 뮤텍스를 사용하면 특정 시점에 하나의 스레드만 코드 블록을 실행하도록 제한하여, 두 개 이상의 스레드가 동시에 같

Total 2668 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:36/134  20-컴퓨터/Page Goto:1 30 31 32 33 34 35 36 37 38 39 40 41 42