c#

c#

    [C#] 함수(메서드)의 실행과 디버깅및 테스팅

    1. 함수(메서드) 어떤 처리를 위해 작성하는 코드가 반복되어 작성되고 있다면 해당 코드를 특정한 함수로 만들어 놓는 방법이 필요합니다. 이는 동일한 처리가 필요한 여러 부분에서 해당 함수를 호출하게 함으로써 코드의 반복을 줄일 수 있습니다. 예를 들어 회계프로그램 등에서 부가세를 계산해야 하는 경우라면 이 기능 자체를 함수로 만들어 부가세 계산이 필요한 모든 부분에 공통적으로 적용하게 되면 부가세 계산이 필요한 부문마다 동일한 코드가 작성되는 낭비를 줄일 수 있는 것입니다. //자동차 int car = 10000; //비행기 int air = 20000; Console.WriteLine($"자동차 부가세 : {car / 10}"); Console.WriteLine($"비행기 부가세 : {air / 10..

    [C#] 흐름제어, 형변환, 예외처리

    1. 변수 ● 산술 연산자 연산자는 변수나 실제값에 해당하는 피연산자를 더하거나 곱하는 등의 연산을 수행하며 일반적으로 다른 변수에 할당 가능한 또 다른 값을 반환합니다. 연산자 중 이항 연산자는 연산에 필요한 피연산자가 최소 2개 이상은 되어야 하는 연산자임을 의미하며 int i = 10; int j = 20; int result = i + j; 가(+), 감(-), 승(*), 제(/) 연산을 위해서 가장 많이 사용되는 연산자입니다. 참고로 % 는 나머지를 의미합니다. int i = 10; int j = 20; int result = i % j; 단항 연산자는 단 하나의 피연산자를 필요로 합니다. int i = 10; int result = ++i; 단항 연산자는 대표적으로 변수의 값을 1만큼 증가시키..

    [C#] C# 개요

    1. C#언어의 버전별 특징 ● 1.0 객체지향 언어에 대한 모든 특징을 담고 2002년에 릴리즈 되었습니다. ● 2.0 2005년에 릴리즈 되었으며 generic을 통한 강력한 데이터 타입이 사용되기 시작했습니다. 이는 코드에 대한 성능의 증가와 함께 타입에러를 감소시키는 역활을 하였습니다. 또한 null 가능한 값형식이 추가되었습니다. ● 3.0 2007년에 릴리즈 되었으며 익명타입과 람다식 그리고 LINQ(Language INtegrated Queries)사용을 통한 서술적 코딩이 가능해 졌습니다. 또한 타입추론을 통한 암시적 지역변수 사용이 가능해졌습니다. ● 4.0 2010년에 릴리즈 되었으며 F#, Python과 같은 동적언어와의 상호운용성이 향상되었습니다. 이로인해 동적타입이 사용되기 시작했..

    C#과 .NET6 시작하기

    1. 개발환경설정 대체적으로 C# 프로그래밍을 시작하기 위해서 사용할 수 있는 도구로는 다음과 같은 것들이 있습니다. Visual Studio 2022 (Windows or Mac) Visual Studio Code (Cross Flatform) GitHub Codespaces 이외 기타 JetBrains사의 Rider와 같은 것들도 도구도 사용할 수 있습니다. ● Vsiaul Studio Code 크로스 플랫폼이며 가벼운 편집기로 Visual Studio Code는 훌륭한 선택이 될 수 있습니다. Microsoft 제품답게 Windows는 물론이고 Red Hat이나 Ubuntu와 같은 다양한 Linux배포판, Mac OS에서도 사용이 가능합니다. 심지어 ARM 프로세서도 지원하므로 Raspberry P..

    .NET과 C# 시작하기

    1. 개발환경 Programming을 하려면 그에 맞는 개발환경이 갖추어져 있어야 할 것입니다. 이를 위해 Microsoft에서는 다음과 같은 Code편집기와 IDE(integrated Development Environments)를 제공하고 있습니다. Visual Studio Code GitHub Codespaces Visual Studio 2019 또는 Visual Studio 2019 for Mac ● Vsual Studio Code 가벼우면서도 최신의 개발환경을 지원하는 Code편집기로는 Visual Studio Code가 있으며 Windows, MacOS나 Red Hat/Ubuntu와 같은 Linux등 다양한 운영체제를 지원하기도 합니다. Visual Studio Code는 기본기능 이외에 다양..

    [C#] TCP/IP 통신

    1. TCP/IP 컴퓨터 사이에 데이터를 주고받으려면 나름대로의 규칙이 필요합니다. 어떠한 방법으로 어떠한 방식을 통해 전송할 것인가를 정해야 하고 그래야 데이터를 그 약속대로 보내고 받을 수 있을 것입니다. 데이터를 주고받기 위한 이러한 규칙을 '프로토콜'이라고 부르며 세상에 존재하는 다양한 프로토콜 중 'TCP/IP'는 사실상 인터넷의 표준 프로토콜이라 할 수 있습니다. TCP/IP는 논리적으로 몇개의 계층구조로 나누어지는데 최상단 응용계층부터 링크(네트워크 접근) 계층까지 각 계층마다 층을 이루고 있으며 이러한 층을 'TCP/IP 스택'이라고 합니다. 웹 브라우저에서 부터 카톡과 같은 메신저나 유튜브 등 다양한 인터넷 서비스들이 이 'TCP/IP 프로토콜'을 통해 이루어지고 있습니다. ● 패킷 인터..

    [C#] Thread(스레드)와 Task(태스크)

    1. 프로세스와 스레드 프로세스라 함은 실행파일이 실행되어 실행파일과 관련된 모든 데이터가 메모리에 적재되어 실행되는 상태를 말합니다. 프로세스는 자신만의 스레드를 가질 수 있으며 이 스레드로 프로그램에 필요한 동작을 수행합니다. 따라서 프로세스는 반드시 하나이상의 스레드를 가지며 스레드는 CPU가 프로그램 실행을 위해 시간을 할애하는 기본 단위가 됩니다. 프로그램이 내부에 여러작업을 수행해야 하는 경우라면 스레드를 여러 개 사용하는 '멀티스레드'를 구현합니다. 예를 들어 문서편집기 프로그램의 경우 사용자가 문서를 작성하고 있으면 주기적으로 자동 저장을 해야 할 때 문서작성용 스레드와 자동 저장을 수행하는 스레드가 각각 필요할 것입니다. 시간이 오래 걸리는 계산 작업을 수행하는 경우에도 사용자가 중간에 ..

    [C#] 파일과 디렉터리 다루기

    1. 파일 및 디렉터리 .NET 에서는 파일과 디렉터리를 다룰 수 있도록 아래와 같은 클래스를 제공하고 있습니다. File 파일을 다룰 수 있는 정적메서드 사용 FileInfo 정적메서드 대신 인스턴스메서드 사용 Directory 디렉토리를 다룰 수 있는 정적메서드 사용 DirectoryInfo 정적메서드 대신 인스턴스메서드 사용 정적 메서드를 사용할지 인스턴스를 통해 사용할지의 결정사항은 정확히 정해진 바 없으나 보통 파일이나 디렉터리의 복사, 이동 등 한두 가지 작업만 하는 경우라면 간단하게 정적 메서드를 사용하며 하나의 파일이나 디렉터리에 대해 여러 가지 작업을 수행하는 경우는 인스턴스를 사용합니다. 정적 메서드나 인스턴스 메서드나 메서드의 이름은 약간씩 다르지만 결국하는 일은 모두 비슷합니다. 우..