프로그래밍/C# 썸네일형 리스트형 [.NET, C#] 비동기 네트워크 API 비동기 네트워크 메서드System.Net 네임스페이스에 System.Net.Sockets의 Socket 클래스에 정의되어 있다. MSDNhttps://msdn.microsoft.com/library/System.Net.Sockets.Socket_methods(v=vs.110).aspx AcceptAsync123public bool AcceptAsync( SocketAsyncEventArgs e) cs 클라이언트의 연결을 수락한다. ReceiveAsync123public bool ReceiveAsync( SocketAsyncEventArgs e)cs 메시지를 수신한다. SendAsync123public bool SendAsync( SocketAsyncEventArgs e)cs 메시지를 전송한다. Conne.. 더보기 직렬화 직렬화(Serialization)정의(definition) 직렬화(Serialization)는 메모리 내부의 오브젝트(object)나 오브젝트 그래프(object graph; 서로를 참조하는 오브젝트들의 집합)을 바이트(bytes)로 이루어진 스트림(stream)이나 XML 노드들로 만들어 보관되거나 전송될 수 있도록 변환하는 것을 말한다. 역직렬화(Deserialization)는 반대로 데이터 스트림을 메모리 내부의 오브젝트나 오브젝트 그래프로 재구성하는 것을 말한다. 목적(purpose)직렬화와 역직렬화는 주로 다음 두 목적으로 사용된다.오브젝트를 네트워크나 어플리케이션 경계 상으로 전송하는 목적.파일이나 데이터베이스로 오브젝트의 표현(representation)을 보관하는 목적. 유니티에서의 직렬화.. 더보기 Delegate Delegate정의메소드들에 대한 참조를 가질 수 있는 하나의 사용자 정의 타입이다. 원리Delegate 에 메소드의 주소를 할당한 후 Delegate 를 호출하면 Delegate 가 메소드를 호출한다. 특징C 에서의 함수포인터와 같다.Delegate 는 인스턴스가 아닌 형식(Type) 이다.delegate 키워드를 사용한다.함수 자체를 캡슐화하는 기능을 가지고 있다. 사용 이유메소드를 대신해 호출을 받아서 우리가 원하는 메소드를 대신해서 호출하기 위해 사용한다. 사용 방법1. Delegate 선언한다. //(C 언어의 함수 형태와 같다. ) 한정자 delegate 반환형식 델리게이트이름 (매개변수);2. Delegate의 인스턴스를 생성한다. 인스턴스를 생성할 때는 Delegate가 참조할 메소드를 매.. 더보기 데이터 보관하기 변수- C# 코드를 작성하면서 변수를 만들 때는(선언, Declare) 단순히 변수를 만드는 것이 아니라 그 내면의 메모리 공간도 함께 생각해야 한다. - 변수는 데이터를 담는 그릇과 같다. 용량이 넘어서면 넘치듯이 변수 또한데이터 형식의 크기를 넘어선다면 오류가 발생한다. 값 형식(Value Types)데이터 삭제 - 해당 지역이 끝나면 데이터 삭제저장 위치 - 스택 참조 형식(Reference Types)데이터 삭제 - 해당 데이터 사용의 끝을 알리면 가비지 컬렉터가 데이터 삭제저장 위치 - 힙 Object 타입- 객체라는 뜻으로 사용되는데, 어떠한 물건(데이터)이든지 다룰 수 있는 형식을 말한다.- 상속을 받으므로써 데이터와 메소드를 물려받은 자식으로써 부모와 똑같이 동작할 수 있게되어 자식을 부모.. 더보기 C#이란? 비전2000년 6월 마이크로소프트사가 .NET 플랫폼을 위해 개발, .NET프레임 워크에 최적화 되어있는 언어.C++의 컴퓨팅 파워, 비주얼 베이직의 프로그래밍 편의성을 결합하여 만든 객체지향 프로그래밍언어.C++의 객체지향성, 자바의 분산 환경처리에 적합한 다중성 등을 모두 지니는 컴포넌트 기반의 소프트웨어 개발 패러다임을 반영.C#은 C++를 계승한다는 의미로 붙여 진 것이지만 실제로는 완전히 다른 언어.(하지만 C나 C++ 로 작성된 소스 코드는 C#에서 컴파일 되지 않고 C#만 마이크로소프트사에서 만들어짐 ) .NET앞으로의 인터넷 서비스는 모든 종류의 기기에서 사용할 수 있어야 한다는 생각에서 나온 플랫폼.각종 프로그램을 유기적으로 연결대 최대 성능을 내는 일련의 소프트웨어 + 웹 서비스 계획... 더보기 가비지 컬렉션 정의C#은 CLR이 자동 메모리 관리 기능(Automatic Memory Management) 기능을 제공한다. 이 자동 메모리 관리 기능의 중심이 가비지 컬렉션(Garbage Collection)이다. 프로그래머로 하여금 무한한 메모리를 사용할 수 있도록 코드를 작성하게 할 수 있다.가비지 컬렉션을 담당하는 것이 가비지 컬렉터(Garbage Collector)라 한다.가비지 컬렉터는 객체 중에 사용하는 것과 사용하지 않는 것을 분리하여 쓰레기들만 조용히 수거한다.가비지 컬렉터도 CPU와 메모리 같은 컴퓨팅 자원을 소모하므로 이 자원을 최소한으로 사용하게 하는 것이 프로그램의 성능을 향상시킬 수 있다. 가비지 컬렉터가 지우지 못하는 메모리C#에서 작성된 모든 코드는 관리형 코드(Managed Code)에.. 더보기 ref와 out 차이 서론기존 C++에서 사용하던 레퍼런스는 ref 키워드를 써서 사용하면 된다.이와 비슷한 녀석인 out이 있는데..처음 봐서 생소해서 예제를 넷에서 찾아보았다. 일단 out은 ref와 거의 비슷한 역할을 하지만 차이점이 있다. 첫 번째, 함수 호출 시 호출 인자를 초기화 하지 않으면 ref는 에러를 발생한다.초기화 되지 않은 변수기 때문에 C#에선 조금 하드하게 에러를 발생한다.하지만 out은 초기화하지 않은 변수도 사용할 수 있다.이는 C#의 특성상 코드를 간결하게 하기 위한 언어이다.초기화와 메소드에서 사용하는 값을 넣는 행위를 중복으로 간주할 수 있다.이를 지원해주는 것이 out이다. 두 번째, out은 위에서 보았듯이 초기화 하지 않은 변수들이 넘어오기때문에 반드시 메소드 초기화 해주어야한다.메소드.. 더보기 처음만드는 C# 기초 입출력 코드 1234567891011121314151617181920212223242526272829// System : 숫자, 텍스트와 같은 데이터를 다룰 수 있는 기본적인 데이터 처리 클래스// stdio와 비슷한 놈으로 보인다.using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace MyFirstCSharp{ class Program { // 네임스페이스 안에서 접근할 수 있도록. 정적 함수로. static static void Main(string[] args) { // 헬월드 출력 Console.WriteLine("Hell World!"); /.. 더보기 이전 1 다음