본문 바로가기

스터디/C#13

20190817 스터디 질문 1. 클래스와 네임스페이스 차이 https://www.geeksforgeeks.org/difference-namespace-class/ 2. 정적클래스와 싱글톤의 차이 접근제한적인 측면에서 싱글톤이 정적클래스보다 상대적인 우위에 있지않을까 추측 http://net-informations.com/faq/netfaq/singlestatic.htm 3. 메인메서드가 인스턴스 없는 상태에서 실행되고 있다는 말이 이해되지 않음 메인메서드는 정적메서드임 인스턴스가 없다 또는 생성할 수 없다는 말은 정적변수/메서드/클래스에 모두 해당되는 말이다. 논의결과, 인스턴스 생성이 불가능하다는 말이 개발자가 코드 상에서 인스턴스화를 못시킨다는 말이지 정적클래스 또는 메서드의 인스턴스 자체가 없다는 이야기는 아닐 것이라는 판단.. 2019. 8. 17.
LINQ 쿼리 연산자 정리 쿼리 연산자 실행형태 설명 Where 지연실행 조건에 따라 값의 시퀀스를 필터링 처리 Skip 시퀀스 안에 지정된 개수만큼의 요소를 건너뛰고 남은 요소를 반환 SkipWhere 지정된 조건이 만족되는 동안에 시퀀스의 요소를 건너뛰고 남은 요소를 반환 Take 시퀀스의 가장 앞부분부터 요소를 지정된 개수만큼 반환 TakeWhile 지정된 조건이 만족되는 동안에 시퀀스에서 요소를 반환 DefaultIfEmpty 지정한 시퀀스의 요소를 반환, 시퀀스가 비어 있을 경우에는 형식 매개변수를 기본값으로 반환 Select 시퀀스에 있는 각 요소를 새로운 형으로 사상 SelectMany 시퀀스에 있는 각 요소를 IEnumerable로 사상하고 그 결과로 나온 시퀀스를 하나의 시퀀스로 평탄화*함 GroupBy 지정된 키.. 2019. 8. 16.
LINQ(Language Integrated Query) 직역하면 언어로 통합된 쿼리 LINQ를 사용하면 객체, 데이터, XML과 같은 다양한 데이터를 표준화된 방법으로 처리할 수 있음 '여러 요소 중에서 조건을 만족하는 요소를 찾는' 처리를 수행할 때 컬렉션의 종류에 따라 다른 방식으로 코드를 작성해야 한다는 것은 프로그래머에게 큰 부담이 된다. LINQ를 사용하면 서로 다른 형태의 컬렉션이라도 IEnumerable 인터페이스만 구현하면 같은 메서드를 사용할 수 있다. 특징 : 메서드 체인이 가능하다. IEnumerable query = names.Where(s => s.Length s.ToLower()); 2019. 8. 16.
람다식(Lamda) C# 3.0부터 도입 람다식은 일종의 메서드, 함수명이 없는 함수 규칙 1. 람다식에서 {}안에 하나의 명령문을 포함할 때는 {}와 return을 생각할 수 있음 2. 람다식에서는 인수의 형을 생략할 수 있음(컴파일러가 데이터타입을 추론할 수 있기 때문) 3. 파라미터가 1개인 경우에는 ()를 생략할 수 있음 *람다식을 통해 어떻게 하는가(How)가 아니라 무엇을 하는가(What)라는 것을 생각하면서 코드를 작성할 수 있게 됐다. --> 추상도가 높아졌다 2019. 8. 16.