본문 바로가기

반응형

코딩/C#

[C#] 박싱(Boxing) 박싱이란 값타입을 참조타입으로 변환하는 것을 말한다. 값타입은 힙영역이 아닌 스택영역에 자리가 잡힌다.박싱을 하는 기본적인 방법은 값타입을 객체화하기 위한 메모리를 힙에 만든 후 값타입에 들어있는 값을 복사하는 것이다. using System; class Boxing1{ public static void Main(){ int b=123; object o = b; //박싱이 일어나는 곳 Console.WriteLine(b); } } 더보기
[C#] 람다식(Lamda Expression) 람다식은 무명메소드를 단순한 계산식으로 표현한 것이다.메소드는 크게 매개변수와 내부 식, 반환값으로 구성되어 있는데 이들만 가지고 메소드를 계산식으로 표현한다.람다식은 매개변수로 전해지는 a, b의 타입까지도 생략가능하다.이미지 출처 : http://mrw0119.tistory.com/22 더보기
[C#] WOL(Wake On Lan) Remote Wake-up 이라고도 하는 Wake on Lan은 특수한 데이터 패킷(=매직 패킷)을 전송하여 네트워크 컴퓨터를 원격으로 켤 수 있는 기술이다.컴퓨터가 꺼진 경우에도 네트워크 어댑터가 계속해서 네트워크를 "수신 대기" 하므로 특수한 패킷이 도착하면 네트워크 어댑터가 컴퓨터를 켤 수 있다.Wake on Lan은 주로 컴퓨터 유지관리 작업을 원격으로 수행하기 위해 시스템 관리자가 사용한다. 매직 패킷을 수신하는 컴퓨터에는 Wake on Lan과함께 작동하는 마더보드, 네트워크 어댑터, 어댑터 드라이버 및 컴퓨터 BIOS가 있어야한다. 매직패킷이란 16진수 FF FF FF FF FF FF 뒤에 맥주소를 일렬로 16번 중단 없이 이은 102Byte짜리 패킷이다. 해당 패킷을 포트지정 후 날리면 컴.. 더보기
[C#] 마샬링(marshalling) 마샬링이란 클라이언트에서 원격 객체를 호출하기 위해서 필요한 모든 정보를 묶어서 클라이언트에게 전송한다. 이러한 정보를 묶는 작업을 우리는 마샬링이라고 부른다. 근본적인 마샬링의 의미는 이기종간의 통신을 위해서 서로간의 형식을 맞춰주는것을 의미한다.객체의 메모리를 통째로 저장한 후 다른 컴퓨터로 전송했는데 이것을 복원해서 사용하려 한다. 하지만 컴퓨터간의 사용하는 데이터 타입이 다르거나 데이터를 저장하는 형태가 다르다면 이러한 형식을 맞추기 위해 마샬링을 한다. 참조 마샬링 - 클라가 원격 객체의 정보만을 가지고 원격 객체를 호출하는 방식.값 마샬링 - 객체의 메모리를 저장하거나 전송할 수 있는 형태로 묶는 것을 말한다. 다른 환경에서 다시 복원할 수 있어야 마샬링의 의미가 적용된다. 더보기
[C#] 문자열 마샬링 CharSet.Ansi(기본값) 문자열 마샬링 - 플랫폼 호출은 문자열을 관리되는 형식(유니코드)에서 ANSI 형식으로 마샬링한다. CharSet.Unicode 문자열 마샬링 - 플랫폼 호출은 관리되는 형식(유니코드)의 문자열을 유니코드 형식에 복사합니다. CharSet.Auto 플랫폼 호출은 대상 플랫폼에 따라 런타임에 ANSI와 유니코드 형식 중에서 선택합니다. 더보기
[C#] 클래스와 구조체 클래스의 경우 모든 오브젝트가 동일한 메모리를 가리키고 있다. 구조체의 경우 스택메모리에 할당이 되므로 서로 다른 값을 가진다. 클래스와 구조체의 차이점 - 구조체는 값타입이며 클래스는 참조타입이다. 더보기
[C#] 구조체 마샬링 Serializable : 문자로 변환하기 위해서 선언StructLayout(LayoutKind.Sequential) : 구조체 선언Pack=1 : pack(데이터를 읽을 단위를 정함)MarshalAs(UnmanagedType.ByValArray, SizeConst = 배열수)?12345678910111213141516171819[Serializable][StructLayout(LayoutKind.Sequential, Pack=1)]public struct _HMIData{ public _hmi_macsta hmi_macsta}[Serializable][StructLayout(LayoutKind.Sequential, Pack=1)]public struct _hmi_macsta{ [MarshalAs(Unm.. 더보기
[C#] IContainer 인터페이스 IContainer - 컨테이너의 기능을 제공합니다. 컨테이너는 논리적으로 0개 이상의 구성 요소를 포함하는 개체. 네임스페이스 : System.ComponentModel 구문 - [ComVisibleAttribute(true)] public interface IContainer : IDisposable 속성 - Components : IContainer의 모든 구성 요소를 가져옵니다. 메서드 - Add(IComponent 매개변수) : 지정된 IComponent를 목록 끝에 있는 IContainer에 추가합니다. - Add(IComponents 매개변수, String 변수) : 지정된 IComponent를 목록 끝에 있는 IContainer에 추가 하고 구성 요소의 이름을 지정합니다. - Remove(.. 더보기
[C#] 마샬링(Marshalling) 마샬링이란 - 한 객체의 메모리에서의 표현방식을 저장 또는 전송에 적합한 다른 데이터 형식으로 변환하는 과정이다. 데이터를 컴퓨터 프로그램의 서로 다른 부분 간에 혹은 한 프로그램에서 다른 프로그램 으로 이동해야 할 때도 사용한다. 마샬링은 직렬화(Serialization)과 유사하며 한 오브젝트(직렬화 된 오브젝트)로 멀리 떨어진 오브젝 트와 통신하기 위해 사용된다. 이는 복잡한 통신을 단순화 하기 위해, 기본요소 대신 통신을 위한 맞춤형 오브젝트를 사용한다. 마샬링의 용도- 마샬링은 프로세스 간 또는 쓰레드 간 데이터 전송에 필요한 원격 프로시저 호출매커니즘 구현에 사용된다.- 닷넷 프레임워크(.NET)에서, P/Invoke 프로세스 하의 관리되지 않은 타입과 CLR 타입 간의 변환은 마샬링을 요구하.. 더보기
[C#] show / showDialog 차이점 Form.Show - 단순히 새창을 여는 Modaless창을 여는것 Form.ShowDialog - Modal자식 창을 열어서 해당 창을 닫기 전까지 부모창의 컨트롤이 불가능하며, 결과 값을 통해 상태나 데이터 정보를 넘겨줄 수 있다. Modaless - 독립된 형태의 Form / 대화상자(Dialog)가 출력되고 있는 동안에도 다른 창의 작업을 진행할 수 있는 상태 Modal - 대화상자(Dialog)가 출력되고 있는 동안에는 다른 창의 작업을 진행할 수 없는 상태 더보기

반응형