5. = .net framework
C++, java similar
C#용 dll, 클래스라이브러리는 asp.net c#에서도
사용 가능
◦ 관리웹에서 몽고드라이버dll을 그대로 사용
메모리침범 걱정 끝!
예외를 던진다.
6. 현상
◦ 입력대기 오류 팝업창이 뜬다.
그래서 unhandled???같은곳에서
◦ 기록남기고
◦ Environment.Exit(0); 로 프로세스 종료
7. 2가지의 자료구조를 가장 많이 사용
◦ List<???> list = new List<???>();
◦ Dictionary<int, ???> list = new
Dictionary<int, ???>();
foreach(var ??? In ???)
◦ 자료구조의 저장방식/순서에 따름
◦ 읽기전용
8. 이런것의 반복) AES 암호화가 필요해
◦ 검색
◦ .net framework에 있네?
◦ 사용코드 숙지하고 적용
◦ 빌드>>실행>> 잘되네…
C++ 사용자입장에선 유틸리티 쓰는 기분!
Third party library지원이 풍부함
9. List 등의 컨테이너에 주로 활용
Select, order by, group by
람다형
◦ Var query = (from e in ? where ? Select e)
함수호출형
◦ List.OrderBy(row => row???).ToList();
10. Like delegated
동시에 1만개의 async가 발생시
◦ 제한된 쓰레드풀링으로 관리
리턴이 필요없는 비동기 작업에 주로 활용
◦ mongodb 쿼리
◦ 서신쓰기
13. 헤더파일이 없네!
“partial class” keyword
컴파일속도는 30초 미만
클래스 개수 - 약 400개
14. 기본 지원
간단 사용
◦ var asm = Assembly.GetExecutingAssembly()
◦ var buff =
asm.CreateInstance(“GameWorldServer.CombatBuffs
.ArmyAttackUp”);
◦ public class ArmyAttackUp : CombatBuff
어셈블리
◦ 빌드된 실행파일/DLL
15. 디버그모드로 서비스중!!!(설마!!)
Release Stack Tracing
◦ 축약되어 있거나 아예 없는 경우도 있다.
Debug Mode
◦ Stackstracing이 반드시 남음
◦ C#특징상 스택훼손은 잘 일어나지 않음
◦ 아직 release와 크게 차이는 안남
16. class type identifier(식별자,변수)
◦ 레퍼런스형태로만 존재
◦ aClass a = new aClass();
넘어가는객체와 넘겨받은객체
◦ A.func(a), public void func(aClass p)
a,p 엄연히 다른 객체임 가리키는 값은 같음
no ref passing
◦ Class는 레퍼런스(주소값)값이 복사되어 넘어감
◦ Structure는 내용전체가 복사되어 넘어감
◦ A.func(a), public void func(aClass p)
p = new aClass(); //p is not a
ref passing
◦ Declare: Public void func(ref ??? A1), Call: ???.func(ref ddd)
◦ A.func(a), public void func(aClass p)
p = new aClass(); //p is a
17. String str = “aaa” + i1 + “sdfsdf” + s1;
◦ + 마다 새로운 객체가 생성됨
◦ String.format() 내부에선 stringbuilder를 사용
StringBuilder 추천!!!
◦ 최대버퍼(글자수,명시가능)내에서 사용
◦ 버퍼넘어서는경우에 새로운 객체 생성
string like int,struct
◦ string a = “”; ddd.func1(a);
◦ String a = “”; ddd.func2(ref a);