반응형

Programing/C# 9

복리 계산기

월급만 모아서는 집을 살 수 없는 시대가 되버렸습니다. 그동안 금융문맹이였던 제 자신을 반성하며 재태크 책도 읽고 주식도 조금씩 모아가고 있습니다. 구글에 검색해보면 복리 계산을 웹에서 할 수 있도록 되어 있는게 있지만 심심하기도 해서 간단하게 코드를 작성해 봤습니다. 입력한 횟수만큼 원금에 수익을 더해서 리턴해주는게 다 이지만 나중에 제 입맛대로 조건을 변경해가면서 쓰려고 작성해 봤습니다. using System; using System.Globalization; namespace CompoundInterest { class Program { static void Main(string[] args) { double principal = 10000000f; // 천만원 double rate = 40f;/..

Programing/C# 2021.02.16

Selection Sort (선택 정렬)

- 데이타의 양이 적을 때 유리함 - 구현이 쉽다. - 추가 저장 공간이 필요 없음 (제자리 정렬) 방법 1. 목록에서 최소값을 찾는다. 2. 찾은 최소값을 맨 앞의 값과 교체 3. 정렬이 완료 될때까지 반복 using System; namespace SelectionSort { class Program { static void Main(string[] args) { Console.WriteLine("Selection sort"); int[] numbers = { 2, 9, 3, 7, 1, 4, 6, 5, 8 }; Print(numbers); SelectionSort(numbers); Print(numbers); } static void Print(int[] a) { string temp = ""; fo..

Programing/C# 2021.02.16

Bubble Sort(버블 정렬)

버블정렬 코드 입니다. - i 와 i + 1을 비교하여 i 가 더 클 경우에 스왑하고 더 이상 필요 없을 때 까지 반복 합니다. - 버블보다 삽입정렬의 복잡도가 더 좋습니다. 성능 - 최악의 경우 : O(n^2) - 최선의 경우 : O(n) - 평균 : O(n^2) - 최악의 경우 공간 복잡도 : O(1) static void BubbleSort(int[] a) { for (int pass=a.Length-1; pass >= 0; pass--) { for (int i=0; i a[i+1]) { // swap int temp = a[i]; a[i] = a[i+1]; a[i+1] = temp; } } } } 테스트 using System; namespace BubbleSort { class Program {..

Programing/C# 2021.02.15

do while의 활용 법 featuring ReadAsStreamAsync(비동기 스트림)

개인적으로 do while도 사용 빈도가 낮은 문법 중에 하나인데요. 다른 분들은 자주 사용하시는지 모르겠네요. 일단 기본적인 사용 방법먼저 설명해 보겠습니다. do statement while ( expression ) ; msdn 에는 이렇게 정의 되어 있네요. "expression(조건식이) 0(거짓)이 될때까지 statement(문)을 계속 실행 된다." while과 다른점은 조건식과 관계없이 무조건 1번은 실행 된다는 점 입니다. static void Main(string[] args) { Console.WriteLine("start"); int i = 0; do { i++; Console.WriteLine($"{i}"); }while(i < 10); Console.WriteLine("end")..

Programing/C# 2020.02.18

double vs decimal

초보 개발자 시절 국방관련 SI 프로젝트를 한적이 있습니다. 정확성을 요하는 결과값을 도출해야 하는 프로젝트에서 실수의 오차 때문에 단위 테스트에서 결함이 발견된 경험이 있습니다. 어떻게 이런 실수를 할 수 있지 라고 생각하시는 분들도 있겠지만 과거 걸프 전 때 미국에서 이 double 관련 실수가 있어서 병사들이 목숨을 잃은 안타까운 사건도 있었다고 하네요. 그래서 double 타입으로 == 동등 연산자를 사용하는 것은 조심해야 합니다. 올바른 사용법은 다음과 같습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 using System; namespace double_v..

Programing/C# 2020.02.11

c# reflection 을 이용해서 assembly의 type과 method의 갯수 파악하기

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 using System; using System.Linq; using System.Reflection; namespace GetCountTypeMethod { class Program { static void Main(string[] args) { foreach(var refAssem in Assembly.GetEntryAssembly().GetReferencedAssemblies()) { var name = Assembly.Load(new AssemblyName(refAssem.FullName)); int count = 0; foreach(var type in name.DefinedTypes..

Programing/C# 2020.02.11

c# delegate event 사용하기 실전예제

고양이를 원하는 시간 만큼 달리게 하고 달리기가 끝나는 순간 이벤트를 발생하고 싶다고 가정해 보죠. 고양이 class를 만들고 Run이라는 Method를 만든 다음에 인자로 시간을 넘겨서 그 시간만큼 for loop 를 돌게 구현 했습니다. 자 이제 for loop 이 끝나는 순간 event를 발생시켜 줍니다. event만 발생시키는 것은 심심하니 결과 값을 전달해 줍시다. 이제 고양이 class를 사용할 곳에서 인스턴스를 만들고 이벤트 함수를 등록해 줍시다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 using System; namespace DelegateTest..

Programing/C# 2019.09.01

Warning CS0114 로 보는 함수 오버라이딩

.Net에서 Virtual 이나 Abstract로 선언된 메서드를 자식 클래스에서 override 하지 않고 사용할 경우 Warning CS0114 가 나오게 된다. ex) Example Code public class ParentClass{ public virtual void Func();} public class ChildClass : ParentClass{ public void Func(); // CS0114 Warning public override void Func(); // override 를 해주면 warning 이 사라진다.} 추상 클래스 형태도 동일하게 적용 된다. ex) Example Code abstract public class ParentClass{ public abstract v..

Programing/C# 2017.11.10
반응형