본문 바로가기
반응형

개발/기본) 기본기76

c#) volatile 키워드 volatile 키워드 volatile 키워드는 동시에 실행되는 여러 스레드에 의해 필드가 수정될 수 있음을 나타내는 키워드로 참조 형식으로 class, structure 필드에서만 사용이 가능하다. 컴파일러, 런타임 시스템 및 하드웨어는 성능상의 이유로 메모리 위치에 대한 읽기 및 쓰기를 다시 정렬할 수 있고 volatile로 선언된 필드는 특정 종류의 최적화에서 제외된다고 한다. 모든 실행 스레드에서처럼 휘발성 쓰기의 단일 순서가 모두 보장되는 것은 아니기 때문에 사용할때 조심히 사용해야 한다. using System; using System.Threading; class Program { // Define a volatile field private static volatile b.. 2023. 11. 8.
기본기)제네릭 타입(Generic Type) 제네릭 타입(Generic Type) 제네릭이라고도 하는 제네릭 형식은 개발자가 형식 안전성을 유지하면서 다양한 데이터 형식으로 작업할 수 있는 클래스, 함수 또는 데이터 구조를 만들 수 있는 프로그래밍 언어 기능으로 제네릭은 각 특정 유형에 대해 코드를 복제하지 않고도 다양한 데이터 유형과 함께 사용할 수 있는 재사용 가능하고 유연한 코드를 작성하려는 경우에 특히 유용하다. 추상적인 베이스를 기준으로 Casting 을 해서 사용을 많이한다. using System; public class Box { private T item; public void SetItem(T item) { this.item = item; } public T GetItem() { return item; } } public clas.. 2023. 8. 4.
기본기)벡터 정규화 및 단위 벡터 보호되어 있는 글 입니다. 2023. 7. 24.
.Net)c#) IDisposable 사용하기 IDisposable 사용하기 'IDisposable'은 관리되지 않는 리소스를 해제하는 메커니즘을 제공하는 .NET 프레임워크의 인터페이스로. .NET 가비지 수집기는 파일 핸들, 창 핸들, 네트워크 소켓, 데이터베이스 연결 등과 같은 관리되지 않는 리소스를 직접 해제하지 않아서 가비지 수집기(GC)를 돕기 위해 클래스에 이러한 유형의 리소스를 사용해서 해제하거나 다시 사용하ㅏㄹ 개체를 준비하는 모든 작업에 사용 한다. IDisposable 인터페이스에는 정리 코드를 포함하도록 구현되는 Dispose라는 단일 메서드가 포함되어 있다. IDisposable을 구현하는 개체 작업을 마쳤으면 해당 Dispose 메서드를 호출해야 한다. 이렇게 하게되면 개체가 보유하고 있는 모든 리소스를 해제할 수 있으므로 .. 2023. 6. 29.
기본기c# )날짜 포맷: DateTime Format 정리 (HH:mm tt, yyyyMMddHHSS ,yyyyMMddhhSS, yyyy-MM-dd) DateTime Format  정리 (HH:mm tt, yyyyMMddHHSS ,yyyyMMddhhSS, yyyy-MM-dd)DateTime의 여러가지 형식이 있는데자주 사용하는 Format을 정리한 포스팅이다.<p style="text-align: center;" data-ke-size=.. 2023. 6. 16.
기본기)c#) Method Chaining(메소드 체이닝) Method Chaining(메소드 체이닝) 메소드 체이닝은 여러 메소드 호출을 단일 명령문의 형태로 결합해서 일련의 작업을 주행할수 있는 기술 테크니컬이다. 메소드 체이닝은 람다에서도 많이 접할수 있다. 간단하게 Chain 처럼 여러개의 Method를 연결해서 사용하는 형태를 말한다. using System; public class Calculator { private int _value; public Calculator(int initialValue) { _value = initialValue; } public Calculator Add(int number) { _value += number; return this; } public Calculator Subtract(int number) { _val.. 2023. 4. 19.
C#) return Swtich (C# 8.0 Switch Expression) return Swtich (C# 8.0 Switch Expression) C#에서 버전이 변경되면서 return switch 문법도 가능하게 되었다. C# 8.0 에서 가능한 표현식으로 switch Expression인데 예시는 다음과 같다. public enum GameType { Normal, Special } private GameType currentGameType = GameType.Normal; public void SwitchTest() { Debug.Log($"[C# switch return] : {GetCount()}"); } public int GetCount() { return currentGameType switch { GameType.Normal => 1, GameType.Spec.. 2023. 1. 25.
기본기)c#) 변수명 앞에 '@'(Symbol) 사용 변수명 앞에 '@'(Symbol) 사용 코드에 '@'가 포함된 코드를 본적이 있어서 @가 무엇을 뜻하고 또 어떤 식으로 동작하는지 궁금해서 알게되어서 정리하는 포스팅 이다. '@' 는 (Symbol)이라고 하고 사용방법과 예시는 다음과 같다. 1. 예약어로 정의된 것을 변수로 사용을 할수 있게 해준다. 예시로 int는 예약어지만 @int 는 변수명으로 판단한다. int @int = 10; 2. 문자열이 그대로 해석된다. 문자를 이스케이프 하지 않고 문자열을 지정할 수 있다. '\' 는 Escape 문자로 일반적으로 다음과 같이 해야한다. var myString = "c:\\myfolder\\myfile.txt" @를 사용하게되면 다음과 같다. var myString = @"c:\myFolder\myfil.. 2023. 1. 9.
C#) List 에서 중복되지 않는 데이터 추출하기 List 에서 중복되지 않는 데이터 추출하기 List에서 중복되지 않는 데이터만 따로 추출해야하는 경우가 생길때 사용하는 코드이다. using System.Linq; var categorys = m_GameDataList.GroupBy(x => x.GetCategory()).Select(y => y.First()); 간단하게 코드를 보면 m_GameDataList List에 있는 Category을 기준으로 Group을 만들고 그 그룹데이터의 First을 가져온다. First 데이터만 가지고오기 때문에 해당 중복되지 않는 데이터를 가지고올수 있다. StackOverFlow Get a List of Distinct Value in List: [링크] Get a list of distinct values in.. 2023. 1. 8.
기본기)Markdown (README.md) 수정하기 Markdown (README.md) 수정하기 단순하게 마크다운에 대한 문법을 알고 있으면 어떤 편집기든 상관없이 편집하고 확장자.md만 붙이면 된다. VS Code가 설치가되어있으면 확장프로그램으로 Markdown All in One이라는 플러그인을 설치하면 미리보기가 가능하다. Readme.md를 지원하는 저장소(Git, Bitbucket, GitLab)에서는 저장소에서 생성 및 편집도 가능하다. 문법에 대한 Template은 다음과 같다. makeareadme.com : [링크] Make a README Learn how to make a great README for your programming project, and use the editable template to get started. w.. 2022. 12. 19.
기본기).Net) Warning 무시(코드 분석 경고 표시하지 않음) Warning 무시(코드 분석 경고 표시하지 않음) Warning은 기본적으로 경고로 코드를 작업하는 과정에서 신경쓰지 못하는 경우가 많다. 그러나 Warning을 대수롭게 생각하면 안된다. 하지만 종종 사용하지 않는 필드에 대해서도 Warning을 노출시켜주는 경우가 있다. warning CS0414 가 대표적이다. 다른 형태로 사용하지만 연결(참조)가 없어서 발생하는 경우 아래의 코드를 사용하면 된다. #pragma warning disable + 경고내용 ... exmaple) #pragma warning disable 414 ... #pragma warning restore + 경고내용 ... exmaple) #pragma warning restore 414 ... Net. 코드 분석 경고를 표시.. 2022. 12. 1.
C#)DateTime Format DateTime Format DateTime은 일반적으로 날짜와 시간으로 표시된 시간을 나타냅니다. 그중에서 자주쓰는 DateTime Format 을 정리한다. 형식 포맷 DateTime.Now.ToString("MM/dd/yyyy") 05/29/2022 DateTime.Now.ToString("dddd, dd MMMM yyyy") Friday, 29 May 2022 DateTime.Now.ToString("dddd, dd MMMM yyyy") Friday, 29 May 2022 05:50 DateTime.Now.ToString("dddd, dd MMMM yyyy") Friday, 29 May 2022 05:50 AM DateTime.Now.ToString("dddd, dd MMMM yyyy") Frid.. 2022. 10. 23.
기본기).Net) IEquatable <T> 비교 IEquatable 해당 인터페이스는 같음을 비교하는 인터페이스로 .Equls(Object)의 형태로 동등한지 비교하는 메소드이다. 비교하는 과정에서 Value Type의 값이 들어가면 Boxing 현상이 이뤄진다고 한다. IEquatable Generic Type으로 정의하고 난 이후에 필요한 타입에 따라 대응하면 해상 상황(Boxing- UnBoxing)을 피할수 있다. using System; using System.Collections.Generic; using System.Text.RegularExpressions; public class Person : IEquatable { private string uniqueSsn; private string lName; public Person(stri.. 2022. 10. 13.
기본기) 형식 매개 변수에 대한 제약 조건 where T : struct 형식 매개 변수에 대한 제약 조건 where T : struct where T: struct의 제약 조건은 다음과 같은 의미를 가진다.T는 struct(구조체), enum(열거형), 또는 기본 데이터 형식(int, float, bool 등) 값 형식으로 정의된 타입만 가능하다.값 형식은 메모리에 직접 데이터를 저장하고, 힙이 아니라 스택에 저장되는것이 일반적이다.  특징설명참조 형식 사용 불가 where T : struct 제약 조건을 사용하면, 해당 형식 매개 변수를 참조 형식(예 : class, array, string, 또는 사용자 정의 참조 형식)을 사용할 수 없다.T는 항상 값 형식이어야 하며 null을 할당 할 수 없다,값 형식의 기본 제약값 형식의 경우 항상 기본 생성자가 보장되므로, 기본값.. 2022. 8. 25.
기본기) URL Append (Custome URL Scheme) URL Append (Custome URL Scheme) URL의 기본에다가 추가로 파라미터를 결합하여 미리 규약된데이터를 넘기는 Query 구분을 추가하는 경우가 종종 있다. Query 로 사용하는 일반적인 용도는 다음과 같다. Tracking, Recording, Searching, Identifying, Paginating, Translating, Filtering, Query가 포함된 URL을 확이해보면 다음과 같다. https://drehzr.tistory.com/785?category=362808 Schema : https Host : drehzr.tistroy.com Path : /785 Query : ?category=362808 프로토콜 : // Scheme Host / Scheme Pa.. 2022. 7. 25.
반응형