스터디) 첫번째 스터디 피드백 및 질문 정리내용
·
💻 Programming Language/C#
1. 참조 형식을 메소드의 매개변수로 넘겨 할당 후 변화를 주면 어떻게 될까? class MyField { public int field1; public int field2; } class AssignRefType { public static void addVal(MyField obj) { MyField temp = obj; temp.field1++; temp.field2++; } public static void subVal(MyField obj) { MyField temp = obj; temp.field1--; temp.field2--; } static void Main(string[] args) { MyField mf = new MyField() { field1 = 1, field2 = 2 }; M..
43. 스레드와 태스크
·
💻 Programming Language/C#
프로세스(Process) : 실행파일이 실행되어 메모리에 적재된 인스턴스 프로세스는 하나 이상의 스레드(Thread)로 구성된다. 스레드는 운영체제가 CPU를 할당하는 기본단위이며, 프로세스가 밧줄이라면, 스레드는 밧줄을 이루고 있는 실이라고 할 수 있다. 멀티 스레드(Multi-Thread)를 이용했을때의 장단점. 장점 사용자 대화형 프로그램에서(콘솔 프로그램과 GUI프로그램 모두) 멀티스레드를 이용하면 응답성을 높일 수 있다는 점을 꼽을 수 있다. 예를 들어 우리가 만든 프로그램을 파일을 복사하는데, 복사할 피일이 너무 커서 소요시간이 30분정도 걸린다고 가정해보자. 이 때 프로그램을 단일 스레드로 만든다면 프로그램이 파일을 복사하는 동안 사용자가 취소 명령을 내리고 싶어도 프로그램이 사용자에게 반응..
42. LINQ 세부 문법
·
💻 Programming Language/C#
두 개의 from 절을 이용한 LINQ 문 using System.Collections; namespace LINQEx { class MemberScore { public string Name { get; set; } public int[] Score { get; set; } } class Program { static void Main(string[] args) { MemberScore[] ms = { new MemberScore(){Name="홍길동",Score=new int[]{30, 42, 67 } }, new MemberScore(){Name="청길동",Score=new int[]{88, 45, 87 } }, new MemberScore(){Name="녹길동",Score=new int[]{55,..
41. 익명 Type
·
💻 Programming Language/C#
익명 타입(무명 타입, Anonymous Type) : 일반적으로 클래스를 사용하기 위해서는 클래스를 정의한 후에 사용한다. C# 3.0에서는 클래스를 미리 정의하지 않고 사용할 수 있도록 익명타입 기능을 지원하게됨. 익명 타입 형식 new {속성1 = 값, 속성2 = 값}; Ex) var c = new {name = "홍길동", age = 22}; 익명타입 사용 예제 코드 using System.Collections; namespace AnonymousTypeEx { class Program { static void Main(string[] args) { var v = new { name = "녹길동", age = 55 }; Console.WriteLine($"이름 : {v.name} 나이 : {v.a..
40. LINQ 기본 문법
·
💻 Programming Language/C#
using System.Collections; /* [LINQ] LINQ의 질의표현식 = 쿼리 식 (Query Expression) 은 from 절로 시작한다. - from 절 다음에는 데이터 원본이 온다. 데이터 원본은 배열, 컬렉션 등이 올 수 있다. - from in ```csharp int[] aaa = {11,22,33,44,55} var res = from a in aaa where a % 2 != 0 orderby a select a; ``` - where 절은 범위 변수의 조건을 지정하여 그 조건에 해당하는 데이터를 걸러내는 역할을 한다. - orderby절은 where 절에서 걸러낸 데이터를 정렬하는 역할을 한다. - 기본 정렬값은 오름차순 ascending 으로 지정되어 있다. 내림차순..
39. LINQ 사용해보기
·
💻 Programming Language/C#
LINQ, ORM => SQL문과는 다르게 DB로부터 필요한 데이터를 편리하게 가져옴. LINQ(Language Integrated Query) : C# 언어에 통합된 데이터 질의 기능 using System.Collections; namespace LinqEx { class Member { public string name { get; set; } public int age { get; set; } } class Program { static void Main(string[] args) { Member[] ml = { new Member(){name = "홍길동" , age =23}, new Member(){name = "청길동" , age =24}, new Member(){name = "백길동" , ..
38. 람다식(Lambda Expression)
·
💻 Programming Language/C#
람다식 : 익명 메소드를 만들기 위해 사용하는 식 람다식으로 만들어진 익명 메소드를 무명 함수(Anonymous Function) 라고 한다. 람다식 선언 형식 매개변수 목록 => 식 => 연산자를 입력 연산자라고 한다. delegate int AAA(int x, int y); static void Main(string[] args){ AAA aaa = (int x,int y) => x + y; } (int x, int y) => x + y 라는 익명 메소드가 delegate 인 aaa에 전달되고 있는 모습 위의 코드는 다음과 같이 바꿔서 사용 가능 AAA aaa = (x, y) => x + y; delegate의 인자에 타입이 선언되어 있기에 가능 위의 익명 메소드(무명함수)는 기존에 익명 메소드를 사..