본문 바로가기

Programming

C# NullType Nullable Type 개요 C#에서는 int, float, struct등 기본 value type은 null을 가질 수 없다. 필드 변수는 어떤 값이 할당되지 않은 상태 (missing value)를 가질 수 없다. 이러한 이유 때문에 null을 할당 할 수 있는 Nullable 타입을 지원한다. Nullable 타입은 Value 값을 갖고 있으면서 NULL 상태를 체크할 수 있는 HasValue를 함께 가지고 있다 사용법 타입 옆에 ?를 입력하는 것으로 할 수있다. int? nullTypeInt; bool? nullTypeBool; int?[] nullTypeArray = new int?[100]; public class NullableCheck { public bool NullCheck(int? .. 더보기
C# Anonymous Method Anonymous Method(무명 메서드) 개요 무명메서드를 하기위해서는 Delegate를 알아야 할 필요가 있다. 1.Delegate 메서드를 참조하는 변수이다. 델리게이트는 메서드를 대신해서 호출하는 역할을 한다. 하나의 Delegate로 여러 메서드를 호출할 수 있다. public delegate int CalDelegate(int a, int b); //델리게이트 선언 public class Anonymous { // 델리게이트로 덧셈할 메서드 public int Plus(int operandA, int operandB) { return operandA + operandB; } // 뺄셈할 메서드 public int Minus(int operandA, int operandB) { return o.. 더보기
C# Generic Generics 정의 제네릭이 라는 것은 자료형에 일반화된 프로그래밍 기법을 의미한다. 어떠한 자료형도 받아서 처리할 수 잇는 클래스나 메소드를 생성하는 기법 여러 데이터셋을 한번에 묶어서 넣는 List 같은 Collection에도 사용된다. 장점 타입에 구애 받지 않고 사용할 수 있어서 코드 수를 줄일 수 있다. 단점 제네릭을 사용함으로 기존과 다른 패턴이 됨으로 가독성이 떨어질 수 있다. namespace OjtTest { class Generic { public T Data { get; set;} // 제네릭을 사용한 클래스 } class NonGeneric //제네릭 안사용한 클래스 { public int IData { get; set; } public String SData { get; set;.. 더보기
Reflect API - 나만의 라이브러리 만들기 - 학부때 친구가 Reflect라는 API를 사용하는 것을 보고 충격적이 었던 것이!! 나도 사용해보기로 했다 이거 하나로 수많은 코드수를 줄일수 있었다.!! - 일단 Relfect의 기본개념은 내필드의 코드를 알아서 바라볼 수 있게 해주는 것 말로 보는 것보다 한번 해보는게 제일 이해하기 쉬움!!! - 다음은 Reflect를 이용해서 request 받은 데이터를 알아서 파싱 해주는 소스이다 이 Class만 상속하면 request를 쉽게 처리 할 수 있었다. 모든지 알아서 내 필드의 데이터에 넣어주니까!! 한번 상속 받아 사용 해보시 길 코드가 되게 간결해진다 더보기
Spring - 기본 세팅 - 아무래도 Spring은 세팅이 좀 힘들다. 학부때 주로 서버로 사용해 왔던 스프링 이지만 지금도 스프링 세팅이 힘들다... 아무래도 dispacher를 세팅하려면 xml을 해야한다는 부담감!! 제일 기본 세팅!! C:/upload/ 더보기
C# -기초- 회사를 입사하게 되면서 아무래도 게임회사다 보니 Server Tool같은걸 C# 이나 C계열로 하게 되었다그래서 C#공부를 하는 중 우선 C#은 자바랑 비슷하다Garbage Collector가 있어서 자동으로 메모리를 할당 해제를 해주는거시 큰장점!! ! Class 구조가 기본Namespace Application 01 Interface Inter Class T Class A : T , Inter // T를 상속 INTER 라는 인터페이스 { public int P { get; set; } // 이렇게 하면 getter , setter를 쉽게 만들수 있는듯해public void mess(){} //기본 메서드 }Class main{static void main(String[] args){A a = new.. 더보기
1 과 0으로 계산기 만들기 - 3 - 최종 소스 !! 교수님께서 가장 빠르게 돌리는 사람에게 좋은 학점을 주신다 하셔서 스레드를 추가했다.나는 mac 을이용해서 비주얼스튜디오의 스레드는 못쓰는관계로 ㅜㅜ pthread 를 이용하여 구현하였다내꺼 속도가 꽤 빨라서 잘되길 바람!!! #include #include #include #include void *Divthr(void *data); bool Equal(int a, int b);int PlusOne (int a); int Plus(int a, int b);int Min (int a, int b);int Mul(int a, int b);int* Div(int a, int b); char Buho (int a); int Pl_buho(int a, int b); //덧셈뺄셈 부호int Mul.. 더보기
1 과 0으로 계산기 만들기 - 2 - 연산은 다했고, 문제가 생겼다 음수연산을 해야하는데 ... 음수연산을 위해선 기본적으로 부등호 함수를 만들어줘야한다. 예를 들어 a 와 b 가 있을때 a 와 b 를 동시에 +1 을 해주는 무한루프를 돌려서!!!먼저 빠져나오는 쪽이 큰쪽 이런식으로 소스!! int Mul_buho(int a, int b){ int unsigned i; if (Equal(a, b)) { i = 0; } else { i = 1; } return i ; } 그리고 ...입력 받을때 부호!! 부호가 같을때와 다를때 !! 를 계산해주는 함수도 필요하다!!//덧셈뺄셈 부호 int Pl_buho(int a, int b){ unsigned int i; if (Equal(a, b)) { if(Equal(a, 0)) i = 0; //덧셈뺄셈.. 더보기
1 과 0으로 계산기 만들기 - 1 - 이제 만들기 시작 !! 더하기 빼기는 비교적 쉬웠다 더하기는 더하는 수만큼 +1 을 계속 해주면 되고, 빼기는 꺼꾸로 예를 들어 x = a+b 면 빼기는 x-a = b 이런식으로 알고리즘을 작성하면 끝밑에는 소스다 . int Plus(int a, int b){ int unsigned i = 0; while(1) { i = PlusOne(i); b = PlusOne(b); if(Equal(a, i)) break; else continue; } return b;} int Min (int a, int b){ int unsigned result = 0; while(1) { if (Equal(a, b)) break; else result = PlusOne(result); b = PlusOne(b); continu.. 더보기
1 과 0으로 계산기 만들기 - 0 - 알고리즘 과목 과제 였었는데.. 정말 재밌게 했던 과제 였던 것 같다교수님께서 기본함수 =, 과 +1 만 제공해주시고 기본 + - / + 는 물론 비트연산 등 c언어 기본 라이브러리 로만 계산기를 만들라고 하셨는데... - 교수님이 제공해주신 기본 함수 -bool Equal (int a, int b){ if(a == b) return true; else return false;}//기본 제공 함수 2int PlusOne (int a){ return ++a; } 더보기