2024/10/14 29

[CS] UML_ClassDiagram

Class Diagram시스템에서 객체 및 객체간의 관계를 설명하는 diagram일반화상속 관계를 나타냄{:width="40%" display="flex" justify-content="center"}public class Animal{ public string Name{get;set;} public int Age{get;set;} public void Describe(){}}public class Dog : Animal{ public void Bark(){}}실체화인터페이스와 클래스의 관계를 나타냄{:width="40%" display="flex" justify-content="center"}public class IDrive{ public void Drive();}public class Ca..

CS 2024.10.14

[C#] Serialization & Deserializaton

[C#] Serialization & Deserializaton직렬화(Serialization)와 역직렬화(Deserialization)는 데이터의 저장 및 전송을 용이하게 하기 위해 데이터를 변환하는 것1. 직렬화 (Serialization)직렬화는 객체 / 데이터를 바이트등의 형태로 변환하여 저장/전송 할 수 있도록 하는 과정대표적 직렬화 방식JsonXmlBinary사용 예시파일 저장네트워크로 객체 전송2. 역직렬화 (Deserialization)직렬화된 데이터를 다시 객체로 복원하는 과정저장된 바이트나 문자열을 다시 객체로 불러오는 것C# Json직렬화 예시기본 코드string filepath = "filepath.json";string json = JsonSerializer.Serialize(ob..

Unity&C#/C# 2024.10.14

[CS] 객체지향 프로그래밍의 4대 특징

객체지향 프로그래밍(OOP) 특징 요약특징설명장점캡슐화데이터와 메서드를 하나의 객체로 묶고, 외부에서 접근을 제한데이터 보호, 유지보수 용이, 코드 복잡성 감소상속부모 클래스의 속성과 메서드를 자식 클래스가 물려받아 확장코드 재사용, 유지보수 편리, 확장성 향상다형성동일한 인터페이스나 부모 클래스로 여러 형태의 객체 사용 가능유연한 설계, 코드 간결화, 다양한 객체 관리 가능추상화필요한 부분만 노출하고 세부 구현은 숨김복잡성 감소, 코드 유연성 증가, 표준화 및 일관성 유지1. 캡슐화 (Encapsulation)What is Encapsulation?데이터와 메서드를 하나의 객체로 묶어 외부로부터 숨기는 방식Why we do Encapsulation?정보 은닉 : 내부 구현을 숨기고, 객체 간의 상호작용..

CS 2024.10.14

[C#] String Builder

String의 문제점String은 불변 특성을 가져 문자열을 수정하거나 연결할 때마다 새로운 인스턴스가 생성되어 메모리 할당과 해제가 반복적으로 발생하게 됨. -> 성능저하StringBuilder란?string의 새로운 인스턴스 생성문제를 해결하기 위해 만들어짐문자열을 동적으로 수정할 수 있는 가변 객체로, 문자열이 자주 변경되는 상황에서 성능을 향상 시키기위해 사용됨.

Unity&C#/C# 2024.10.14

[C#] 클래스 상속, 추상클래스, 인터페이스

1. 클래스 상속 (Class Inheritance)What is Inheritance?기존 클래스 (부모 혹은 슈퍼)의 속성과 메서드를 새로운 클래스(자식 혹은 서브)가 물려받는 것특징코드 재사용 : 부모 클래스의 속성과 메서드를 자식클래스에서 재사용확장성 : 기능을 확장하거나 override 할 수 있음C#에서는 단일 상속만 지원사용 시점공통 기능을 여러 클래스에서 재사용해야할 때기능을 확장하고 싶을 때2. 추상 클래스 (Abstract Class)[추상클래스]({{ site.baseurl }}/cs/2024/09/11/abstractclass) What is Abstract Class?하나 이상의 추상 메서드를 포함할 수 있는 클래스실체 클래스의 공통적인 부분을 추출해 어느정도 규격을 잡아 놓은 추..

Unity&C#/C# 2024.10.14

[C#] Delegate, Event, Action 그리고 Func

1. DelegateWhat is Delegate?Delegate는 C#에서 메서드 참조를 가능하게 하는 형식.메서드의 서명(매개변수와 반환 타입)을 기반으로 메서드를 가리킬 수 있으며, 마치 함수 포인터처럼 동작.예시public delegate void MyDelegate(string message); // 리턴 타입이 void인 Delegate 정의public void PrintMessage(string message){ Console.WriteLine(message);}MyDelegate del = PrintMessage; // 메서드 참조del("Hello, Delegate!"); // Delegate를 통한 메서드 호출2. EventWhat is Event?특수한 형태의 d..

Unity&C#/C# 2024.10.14

[C#] Console

C# Console 기능 정리1. Console.SetCursorPosition(int x, int y)역할: 콘솔 창 내에서 커서를 특정 위치(x, y)로 이동활용 예시: console을 클리어하지 않고 특정 위치로 옮겨 문자를 그리거나 지울 수 있음.Console.SetCursorPosition(10, 5); // 콘솔 창의 (10, 5) 위치로 커서 이동Console.Write("O"); // 스네이크 머리 또는 몸체 출력2. Console.SetWindowSize(int width, int height)역할: 콘솔 창의 너비와 높이를 설정활용 예시: 게임을 위한 고정된 화면 크기를 설정하여 게임 공간을 관리Console.SetWindowSize(80, 40); // 콘솔 창의 너비를 80, 높이를..

Unity&C#/C# 2024.10.14

[C#] Operator Precedence

C# 연산자 및 식 - 모든 C# 연산자 및 식 나열 - C# Microsoft Learn우선순위연산자 유형연산자0기본x.y (맴버 액세스)f(x) (호출 식)x?.y , x?[y] (Null 조건부 연산자)x++, x--newtypeof,checked,unchecked,defualt,nameof,delegate,sizeof,stackalloc,x->y (포인터 맴버 엑세스)1괄호()2단항연산자++x, --x, ture,false..3산술 곱*, /4산술 덧셈+-5shift>, >>>6관계형 및 형식테스트, =, is, as7equality==, !==8논리 and&9논리 Xor^10논리 or|11조건부 And&&12조건부 OR||13Null 병합??14조건 연산자c?t:f15할당 및 람다 선언

Unity&C#/C# 2024.10.14

[C#] Literal

Lexical structure - C# language specification | Microsoft Learn정수형 리터럴1. 10진수 리터럴 (Decimal Integer Literal)정수 범위: 0 ~ 9예시: 123, 1_000_000 (언더스코어 _ 사용 가능)타입 접미사:U 또는 u: 부호 없는 정수L 또는 l: long 타입 정수UL 또는 ul: 부호 없고 long 타입 정수예시:42U: 부호 없는 정수42L: long 타입 정수42UL: 부호 없고 long 타입 정수2. 16진수 리터럴 (Hexadecimal Integer Literal)정수 범위: 0 ~ 9, A ~ F표기법: 0x 또는 0X로 시작타입 접미사: 10진수와 동일 (U, L, UL)예시:0xFFU: 부호 없는 16진수0..

Unity&C#/C# 2024.10.14

[C#] dotNet

.Net FrameworkCLR이라는 공용언어 런타임을 사용해서 다양한 언어로 작성된 코드로 윈도우 데스크탑 애플리케이션을 구축하기 위해 최적화 됨.Net core.Net Framework의 멀티 플랫폼 버전MonoMono는 작은 런타임이 필요할 때 주로 사용되는 .NET 구현Android, macOS, iOS, tvOS 및 watchOS에서 Xamarin 애플리케이션의 성능을 향상하는 런타임주로 작은 사용 공간에 초점을 맞춤또한 Mono에서는 Unity 엔진으로 만든 게임이 동작일반적으로 Mono는 Just-In-Time 컴파일러에서 사용되지만 iOS 같은 플랫폼에 사용되는 전체 정적 컴파일러(Ahead-Of-Time 컴파일) 기능도 제공C++ 프로그램:컴파일 및 링크 과정:C++ 코드 → 컴파일러(c..

Unity&C#/C# 2024.10.14