=================================
=================================
=================================
출처: https://mydevnote.tistory.com/14
출처: https://mydevnote.tistory.com/14 [MyDevNote]
=================================
=================================
=================================
필드
AnsiBStr | 35 | 싱글 바이트 길이 접두사가 있는 ANSI 문자열입니다. String 데이터 형식에 이 멤버를 사용할 수 있습니다. |
AsAny | 40 | 런타임에서 개체의 형식을 결정하고 해당 형식으로 개체를 마샬링하는 동적 형식입니다. 이 메서드는 플랫폼 호출 메서드에만 유효합니다. |
Bool | 2 | 4바이트 부울 값(true != 0, false = 0)입니다. Win32 BOOL 형식입니다. |
BStr | 19 | 더블바이트 길이 접두사가 있는 유니코드 문자열입니다. COM의 기본 문자열인 이 멤버는 String 데이터 형식에 사용할 수 있습니다. |
ByValArray | 30 | Value 속성이 ByValArray 로 설정된 경우, SizeConst 필드는 배열에 있는 요소의 수를 나타내도록 설정되어야 합니다. ArraySubType필드는 문자열 형식 간을 구분해야 하는 경우 배열 요소의 UnmanagedType을 포함할 수도 있습니다. 이 UnmanagedType은 구조체에서 필드로 나타나는 요소가 있는 배열에만 사용할 수 있습니다. |
ByValTStr | 23 | 구조체 내에 나타나는 인라인 고정 길이 문자 배열에 사용됩니다.ByValTStr과 함께 사용되는 문자 형식은 포함하는 구조체에 적용된StructLayoutAttribute 특성의 CharSet 인수에 의해 결정됩니다. 항상 SizeConst 필드를 사용하여 배열의 크기를 나타냅니다. |
Currency | 15 | 통화 형식입니다. Decimal 대신 COM 통화 형식으로 10진 값을 마샬링하기 위해 Decimal에서 사용됩니다. |
CustomMarshaler | 44 | MarshalType 또는 MarshalTypeRef 필드와 함께 사용될 때 사용자 지정 마샬러 클래스를 지정합니다. MarshalCookie 필드는 사용자 지정 마샬러에 추가 정보를 전달하는 데 사용할 수 있습니다. 이 멤버는 모든 참조 형식에 사용할 수 있습니다. 이 멤버는 매개 변수 및 반환 값에만 사용할 수 있습니다. 필드에는 사용할 수 없습니다. |
Error | 45 | I4 또는 U4에 연결되어 있으며, 내보낸 형식 라이브러리에서 매개 변수를 HRESULT로 내보내도록 하는 네이티브 형식입니다. |
FunctionPtr | 38 | C 스타일 함수 포인터로 사용할 수 있는 정수입니다. 이 멤버는Delegate 데이터 형식 또는 Delegate에서 상속된 형식에 사용할 수 있습니다. |
HString | 47 | Windows 런타임 문자열입니다. String 데이터 형식에 이 멤버를 사용할 수 있습니다. |
I1 | 3 | 부호 있는 1바이트 정수입니다. 이 멤버를 사용하여 부울 값을 1바이트 C 스타일 bool (true = 1, false = 0)로 변환할 수 있습니다. |
I2 | 5 | 부호 있는 2바이트 정수입니다. |
I4 | 7 | 부호 있는 4바이트 정수입니다. |
I8 | 9 | 부호 있는 8바이트 정수입니다. |
IDispatch | 26 | COM IDispatch 포인터(Microsoft Visual Basic 6.0의 Object )입니다. |
IInspectable | 46 | Windows 런타임 인터페이스 포인터입니다. Object 데이터 형식에 이 멤버를 사용할 수 있습니다. |
Interface | 28 | COM 인터페이스 포인터. 인터페이스의 Guid는 클래스 메타데이터에서 얻을 수 있습니다. 정확한 인터페이스 형식 또는 클래스에 적용할 경우 기본 인터페이스 형식을 지정하려면 이 멤버를 사용하세요. 이 멤버를 Object 데이터 형식에 적용하면 IUnknown과 같은 동작이 생성됩니다. |
IUnknown | 25 | COM IUnknown 포인터입니다. Object 데이터 형식에 이 멤버를 사용할 수 있습니다. |
LPArray | 42 | C 스타일 배열의 첫 번째 요소에 대한 포인터입니다. 관리되는 코드에서 관리되지 않는 코드로 마샬링하면 배열의 길이는 관리되는 배열의 길이에 의해 결정됩니다. 비관리 코드에서 관리 코드로 마샬링할 때 배열의 길이는 SizeConst 및 SizeParamIndex 필드에서 결정되며, 문자열 형식 간을 구분해야 하는 경우 필요에 따라 배열 내 요소의 관리되지 않는 형식이 뒤에 옵니다. |
LPStr | 20 | 싱글 바이트 null로 끝나는 ANSI 문자열입니다. String 및StringBuilder 데이터 형식에 이 멤버를 사용할 수 있습니다. |
LPStruct | 43 | 관리되는 서식이 지정된 클래스를 마샬링할 때 사용하는 C 스타일 구조체에 대한 포인터입니다. 이 메서드는 플랫폼 호출 메서드에만 유효합니다. |
LPTStr | 22 | 플랫폼 종속 문자열: Windows 98에서는 ANSI, Windows NT 및 Windows XP에서는 유니코드를 지원합니다. LPTStr 형식의 문자열은 내보낼 수 없으므로 이 값은 플랫폼 호출에 대해서만 지원되고 COM interop에 대해서는 지원되지 않습니다. |
LPUTF8Str | 48 | UTF-8로 인코딩된 문자열에 대한 포인터입니다. |
LPWStr | 21 | 2바이트 null로 끝나는 유니코드 문자열입니다. |
R4 | 11 | 4바이트 부동 소수점 수입니다. |
R8 | 12 | 8바이트 부동 소수점 수입니다. |
SafeArray | 29 | 형식, 차수, 관련된 배열 데이터의 범위를 전달하는 자동 기술 배열인 SafeArray 입니다. 이 멤버를 SafeArraySubType 필드와 함께 사용하여 기본 요소 형식을 재정의할 수 있습니다. |
Struct | 27 | 형식이 지정된 관리되는 클래스와 값 형식을 마샬링하는 데 사용되는 VARIANT입니다. |
SysInt | 31 | 플랫폼 종속의 부호 있는 정수: 32비트 Windows에서는 4바이트, 64비트 Windows에서는 8바이트입니다. |
SysUInt | 32 | 플랫폼 종속의 부호 없는 정수: 32비트 Windows에서는 4바이트, 64비트 Windows에서는 8바이트입니다. |
TBStr | 36 | 길이 접두사가 있는 플랫폼 종속 char 문자열: Windows 98의 ANSI, Windows NT의 유니코드. BSTR과와 비슷한 이 멤버는 거의 사용하지 않습니다. |
U1 | 4 | 부호 없는 1바이트 정수입니다. |
U2 | 6 | 부호 없는 2바이트 정수입니다. |
U4 | 8 | 부호 없는 4바이트 정수입니다. |
U8 | 10 | 부호 없는 8바이트 정수입니다. |
VariantBool | 37 | 2바이트 OLE 정의 VARIANT_BOOL 형식(true = -1, false = 0)입니다. |
VBByRefStr | 34 | Visual Basic에서 비관리 코드의 문자열을 변경하고 결과를 관리 코드에 반영되도록 하는 데 사용할 수 있는 값입니다. 이 값은 플랫폼 호출에만 지원됩니다. |
예제
다음 코드 조각에는 관리 되는 소스 코드에서 COM 구성 요소에 의해 구현 되는 관리 되지 않는 인터페이스를 선언 하는 방법을 보여 줍니다. System.Runtime.InteropServices.ComImportAttribute 특성을 방지 합니다 IMyStorage
com 사용에 대 한 다시 내보내지 인터페이스 (COM 클라이언트는 기존 COM 구성 요소 직접 사용 합니다.) 이 예에서MarshalAsAttribute 몇 가지 지정 UnmanagedType 원래 COM 인터페이스에 사용 된 형식을 나타내는 멤버입니다.
using System; using System.Runtime.InteropServices; namespace MyModule { // If you do not have a type library for an interface // you can redeclare it using ComImportAttribute. // This is how the interface would look in an idl file. //[ //object, //uuid("73EB4AF8-BE9C-4b49-B3A4-24F4FF657B26"), //dual, helpstring("IMyStorage Interface"), //pointer_default(unique) //] //interface IMyStorage : IDispatch //{ // [id(1)] // HRESULT GetItem([in] BSTR bstrName, [out, retval] IDispatch ** ppItem); // [id(2)] // HRESULT GetItems([in] BSTR bstrLocation, [out] SAFEARRAY(VARIANT)* pItems); // [id(3)] // HRESULT GetItemDescriptions([in] BSTR bstrLocation, [out] SAFEARRAY(VARIANT) ** ppItems); // [id(4), propget] // HRESULT get_IsEmpty([out, retval] BOOL * pfEmpty); //}; // This is the managed declaration. [ComImport] [Guid("73EB4AF8-BE9C-4b49-B3A4-24F4FF657B26")] public interface IMyStorage { [DispId(1)] [return : MarshalAs( UnmanagedType.Interface )] Object GetItem( [In, MarshalAs( UnmanagedType.BStr )] String bstrName ); [DispId(2)] void GetItems( [In, MarshalAs( UnmanagedType.BStr )] String bstrLocation, [Out, MarshalAs( UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_VARIANT )] out Object[] Items ); [DispId(3)] void GetItemDescriptions( [In] String bstrLocation, [In, Out, MarshalAs( UnmanagedType.SafeArray )] ref Object[] varDescriptions ); bool IsEmpty { [DispId(4)] [return : MarshalAs( UnmanagedType.VariantBool )] get; } } }
설명
사용 하 여는 UnmanagedType 인 열거형을 System.Runtime.InteropServices.MarshalAsAttribute 형식이 비관리 코드와 상호 운용 하는 동안 마샬링되는 방법을 지정 하는 특성입니다. .NET framework에서 사용할 수 있는 간단한 값 형식 (I1, I2, I4, I8, R4, R8, U2, U4, 및 U8), 관리 되지 않는 형식 및 기타 다양 한 형식을 사용 하 여 코드를 마샬링할이 열거형을 사용할 수 있습니다.
자세한 내용은 비관리 코드 상호 운용을 참조하세요.
=================================
=================================
=================================
- 정수 자료형(Intergral Types)
자료형 크기 범위 sbyte 부호있는 1 byte 범위 정수 -128~127 byte 부호없는 1 byte 범위 정수 0~255 short 부호있는 2 byte 범위 정수 -32768~32767 ushort 부호없는 2 byte 범위 정수 0~65535 int 부호있는 4 byte 범위 정수 -2147483648~2147483647 uint 부호없는 4 byte 범위 정수 0~4294967295 long 부호있는 8 byte 범위 정수 -9223372036854775808 ~9223372036854775807 ulong 부호없는 8 byte 범위 정수 0~18446744073709551615 char 2 byte 유니코드 문자 0000~FFFF *char 자료형은 정수 자료형의 일종이지만 다른 정수형으로 암시적 변환 불가능.
- 부동소수점 자료형
float 4 byte 부동 소수점 수 ±1.5×10^-45~±3.4×1038 double 8 byte float형보다 2배정밀한수 ±5.0×10^-324±1.7×10308 *float형 변수에 저장할 수에는 마지막에 항상F를 붙여주어야함. 그렇지 않을 경우 double형 수로 인식.
- 논리형(Boolean)
bool 1 bit 논리형 true, false
- 십진형(Decimal type)
decimal 16 byte float형보다 좁고 정밀한 수 1.0×10^-28~약7.9×10^28 *수 가장 뒤에 M을 붙여주어야함. 그렇지 않을 경우 double형 수로 인식.
- 나열형(Enumeration Type)
-나열형 자료는 상수의 집합으로 구성된 자료형입니다.사용법은enum 나열자이름 : 기반 자료형{멤버1,멤버2,멤버3,~~~}출처 : 데브피아 김수동(sobakr)님
[출처] C# 자료형의 크기와 범위|작성자 로이머스탱
=================================
=================================
=================================
'프로그래밍 관련 > 언어들의 코딩들 C++ JAVA C# 등..' 카테고리의 다른 글
[C#] C# 날짜, 시간 관련 (0) | 2019.04.06 |
---|---|
[C#] 구조체, 기본변수형등등 에 null (Nullable<T> 타입) 사용하기 관련 (0) | 2019.04.01 |
[C#] private, public, protected, internal 접근자 설정 관련 (0) | 2019.03.27 |
[C#] map기능과 비슷한 함수 관련 (Dictionary, hashtable) (0) | 2019.03.19 |
[C#] int, char, byte 등등의 배열 Array 복사,초기화 등등 관련 (0) | 2019.03.15 |
댓글 영역