본문 바로가기

c#109

Elo를 적용해서 레이팅 포인트 계산하는 예제 예상 승률을 계산하는 공식 여기서 400은 매직 넘버로 각자의 상황에 따라서 조절이 가능한 값이다. 보통 K 상수라고 불리운다. LiveRating을 계산하는 공식 예시 코드 double myK = 400; // 매직 넘버 K 상수 double e = (oppositeScore - myScore) / myK; double winRate = 1 / (Math.Pow(10, e) + 1); var winRateMin = 0.0; var winRateMax = 0.0; // winRate 최소값이 0.0이 아니면 최소값으로 보정해준다 if (winRateMin != 0.0) { winRate = Math.Max(winRateMin, winRate); } // winRate 최대값이 0.0이 아니면 최대값으로 .. 2023. 3. 13.
C# 상속 관련 키워드 정리 상속 관련 키워드 일반 클래스 (class) 추상 클래스 (abstract class) 인터페이스 (interface) 일반 클래스의 경우 class Animal { public void Speak() { Console.WriteLine("I`m Animal."); } } class Dog : Animal { public void Speak() // CS0108 { Console.WriteLine("I`m Dog."); } } class Program { static void Main(string[] args) { var dog = new Dog(); dog.Speak(); // I`m Dog. ((Animal)dog).Speak(); // I`m Animal. } } Speak() 함수를 virtual.. 2023. 2. 27.
C# 숫자 서식 지정자(Number Format Specifier) 표준 출력 형식의 문법 {n,w:tp} 예시 : {0,10:N2} 키워드 명칭 n 인자 Argument w 출력 범위 Width t 데이타 타입 Data Type p 정확도 Precision decimal val = 1234.5678M; string s = string.Format("{0,10:N2}", val); // 출력: " 1,234.57" Console.WriteLine(s); {0,10:N2} : 첫 번째 인자인 val을 받아서 전체 넓이 10으로 앞의 공백 포함 10자리 표현하고 N(Numberic) 형식으로 표현된다. 소수점 이하는 2자리까지 표시한다. 표준 숫자 서식 문자열 (Standard numeric format strings) static void Main(string[] args.. 2023. 2. 21.
메모리 구조(Memory Structure)에 대해서 메모리 구조 우리가 exe 파일을 실행하면 운영체제는 프로그램에 정의된 명령어(코드)를 바탕으로 메모리에 프로세스를 적재한다. 해당 프로세스를 위한 Code, Data, Heap, Stack 영역이 생성된다. 메모리 구조 코드 영역 데이터 영역 힙 영역 스택 영역 코드 영역 (Code) 소스코드가 기계어 형태로 저장된다 CPU가 저장된 명령어를 프로그램 카운터에 의해 하나씩 가져가 처리하게 된다. 프로그램 시작부터 종료까지 메모리에 있게 된다. 컴파일 타임에 결정되고, 중간에 코드가 변경되지 않도록 Read-Only 형태로 저장된다. 데이터 영역 (Data) 전역변수, static 변수가 저장된다. 프로그램 시작과 동시에 할당되고 프로그램이 종료되어야 메모리가 해제된다. 실행 도중 변수 값이 변경될 수 .. 2023. 2. 17.
C# 커맨드 라인(CommandLine) 파싱 라이브러리 소개 커맨드 라인 라이브러리 소개 보통 툴이나 프로그램을 만들면 유아이가 별도로 없다면 입력인자로 받아서 여러 처리를 진행하게 됩니다. 이때 있으면 유용한 라이브러리가 커맨드라인 파싱 라이브러리입니다. 이번에 제가 알게된 라이브러리는 Mono.Options라는 이름의 라이브러리입니다. 라이브러리 링크로 이동 작고 가볍고 생각보다 기능이 많은거같아서 잠깐 써보았는데 벌써 마음에 들었습니다. 거의 대부분의 .Net 플렛폼에서 호환 가능 Full .NET Framework 4.0+ (Client Profile) .NET Core 1.0 .NET Standard 1.6+ Portable Class Libraries (Profile 259) 설치 방법 비주얼 스튜디오 누겟(Nuget)으로 설치 혹은 PM> Instal.. 2023. 2. 17.
C# 이스케이프 시퀀스(Escape sequence) 문자열 종류 " " : 따옴표 붙은 문자열 리터럴 (Quoted string literals) @" " : 축자 문자열 리터럴 (Verbatim string literals) """ """ : 원시 문자열 리터럴 (Raw string literals) *C# 11부터 사용 가능 // Initialize with a regular string literal. string oldPath = "c:\\Program Files\\Microsoft Visual Studio 8.0"; // Initialize with a verbatim string literal. // verbatim string is one that does not need to be escaped, like a filename string n.. 2023. 2. 14.