C#14 c#테트리스 게임만들기 Position classusing System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Tetris{ //임에서 특정 위치를 나타내는 클래스 public class Position { // 행 위치를 나타내는 속성 (y 좌표와 유사) public int Row { get; set; } // 열 위치를 나타내는 속성 (x 좌표와 유사) public int Column { get; set; } // 행과 열을 매개변수로 받아 Position 객체를 초기화하는 생성자 .. C# 2024. 11. 4. 네트워크 프로그래밍 using System;using System.Diagnostics;using System.Net;using System.Net.Sockets;using System.Text;namespace EchoClient{ class MainApp { static void Main(string[] args) { // 프로그램 실행 시 필요한 인자가 부족하면 사용법 출력 후 종료 if (args.Length ", Process.GetCurrentProcess().ProcessName); return; } // 명령어 인자에서 바인딩할 .. C# 2024. 11. 4. Task Task는 C#에서 비동기 프로그래밍을 수행하기 위한 주요 클래스입니다.비동기 프로그래밍을 통해 프로그램이 작업을 기다리는 동안 다른 작업을 수행할 수 있어 응답성이 높은 애플리케이션을 만들 수 있습니다. Task의 기본 개념System.Threading.Tasks 네임스페이스에 포함되어 있습니다.Task는 비동기 작업을 나타내며, 비동기 코드의 실행 결과를 반환할 수 있습니다.Task를 통해 비동기 작업이 완료될 때까지 기다리거나, 완료 후에 후속 작업을 연결할 수 있습니다.비동기 작업이란?프로그램이 작업을 시작하면 그 작업이 백그라운드에서 실행되고, 프로그램은 다음 코드 줄로 넘어갑니다.작업이 백그라운드에서 진행되는 동안 프로그램은 다른 작업을 수행하거나 다음 코드 줄로 넘어갈 수 있습니다.Task의.. C# 2024. 11. 3. 대리자와 이벤트 대리자(Delegator)코드(메소드)를 대신 실행하는 객체메소드를 호출하듯 사용(즉, 인수를 입력하고 결과를 반환 받음)단, 대리자가 실행할 코드는 컴파일 시점이 아닌 실행 시점에 결정대리자의 선언과 사용delegate 키워드를 이용하여 선언메소드와 같이 대리자 또한 매개변수 목록과 반환 형식을 가짐한정자 delegat e반환형식 델리게이트이름 (매개변수_목록); 대리자의 선언과 사용의 예MyDelegate Callback;Callback = new MyDelegate(Plus);Console.WriteLine(Callback(3,4));Callback = new MyDelegate(Minus);Consloe.WriteLine(Callback(7,5)); 익명 메소드다른 코드 블록에서 재사용될 일이 .. C# 2024. 11. 1. 프로그래밍 일반화 메소드 일반화 매서드 선언 방법한정자 반환_형식 메소드_이름 (매개변수_목록){ //...} //int 버전void CopyArray(int[] source, int[] target){ for(int i = 0; i 이 코드에서 데이터 형식이 사용된 부분을 T기호로 치환하면서 메소드 이름 뒤에 를 넣어주면 T는 형식 매개변수가 됩니다.void CopyArray (T[] source, T[] target){ for(int i = 0; i int[] source = {1,2,3,4,5};int[] target = new int{source.Length];CopyArray(source, target);foreach(int element in target) Console.WriteLine(elemen.. C# 2024. 11. 1. 배열과 컬렉션 그리고 인덱서 배열 자리 만들기 배열의 활용 방법 배열의 마지막 인덱스 접근 방법배열의 초기화 첫 번째 방법 두 번째 방법세 번째 방법 세 방법 모두 동일하며, 사용하고 싶은데로 사용하면 됩니다. System.Array 배열 분할하기 2차원 배열 가변배열 컬렉션 ArrayList Add()는 컬렉션의 마지막에 있는 요소 뒤에 새 요소를 추가합니다.Remove()는 특정 인덱스에 있는 요소를 삭제합니다.Insert는 원하는 위치에 새 요소를 삽입합니다. ArrayList는 다양한 형식의 객체를 담을 수 있습니다. QueueQueue에서 배열의 입력은 오로지 뒤에서만 일어나며, 출력은 오로지 앞에서만 이뤄집니다.중간에서 필요한 부분만 빼서 쓸 수 있는 배열과는 다릅니다. StackStack은 Queue와 반대로 먼저 .. C# 2024. 11. 1. 프로퍼티 1. 프로퍼티의 개념프로퍼티는 기본적으로 필드의 값을 읽고 쓰는 데 사용되는 접근자(getter와 setter)의 집합이입니다. 이 접근자를 통해 외부에서 직접적으로 필드에 접근하는 것이 아니라, 프로퍼티를 통해 값의 읽기(read)와 쓰기(write) 작업이 이루어집니다. 2. 프로퍼티의 구조프로퍼티는 다음과 같은 두 가지 주요 구성 요소를 가진다:get 접근자: 필드의 값을 반환한다. 값을 읽는 용도로 사용된다.set 접근자: 필드에 값을 할당한다. 값을 변경하거나 설정할 때 사용된다.public class Example{ private int number; // 실제 값을 저장할 필드 // 프로퍼티 정의 public int Number { get { return n.. C# 2024. 11. 1. 인터페이스와 추상클래스 인터페이스는 클래스가 따라야 하는 약속 같은 것입니다. 이 인터페이스를 구현하는 클래스는 약속된 메서드를 반드시 만들어야 합니다. 인터페이스는 기능의 이름만 정해 놓고, 실제 내용은 만들지 않아요. 클래스가 그 기능을 실제로 어떻게 할지 정합니다. using System;using System.IO;namespace Interface{ // ILogger 인터페이스: 로그를 기록하는 역할을 정의 interface ILogger { void WriteLog(string message); // 로그를 기록하는 메서드 } // ConsoleLogger 클래스: ILogger를 구현하며, 메시지를 콘솔에 출력하는 클래스 class ConsoleLogger : ILog.. C# 2024. 10. 31. 클래스 클래스 선언과 객체의 생성using System;namespace BasicClass{ class Cat { public string Name; public string color; public void Meow() { Console.WriteLine($"{Name} : 야옹"); } } class MainApp { static void Main( string[] args ) { Cat kitty = new Cat(); kitty.color = "하얀색"; kitty.Name = "키티"; ki.. C# 2024. 10. 30. 메소드로 코드 간추리기 메소드의 결과를 참조로 반환하기using System;namespace RefRetrun{ class Product { private int price = 100; public ref int GetPrice() { return ref price; } public void PrintPrice() { Console.WriteLine($"Price :{price}"); } } class MainApp { static void Main(string[] args) { Product carrot = new Product.. C# 2024. 10. 30. 코드의 흐름 제어하기 switch 문과 패턴 매칭using System;namespace Switch2{ class MainApp { static void Main(string[] args) { object obj = null; string s = Console.ReadLine(); // TryParse: 입력값을 int 형식으로 변환 가능한지 확인 // TryParse는 변환이 가능하면 true를 반환하고, out 변수에 변환된 값을 넣습니다. // 변환이 불가능하면 false를 반환하여 예외 없이 실패를 처리합니다. if (int.TryParse(s,.. C# 2024. 10. 30. 데이터를 가공하는 연산자 C#에서 제공하는 연산자 산술 연산자using System;namespace arithmaticoperators{ class MainAp { static void Main(string[] args) { int a = 111 + 222; Console.WriteLine($"a : {a}"); int b = a - 100; Console.WriteLine($"b : {b}"); int c = b * 10; Console.WriteLine($"c : {c}"); double d = c / 6.3; Console.Writ.. C# 2024. 10. 29. 이전 1 2 다음