본문 바로가기
Delphi/문법

델파이 기본타입 헬퍼

by MonoSoft 2021. 6. 3.
728x90
반응형

델파이 기본타입 헬퍼

 

자바 버전5부터 오토박싱 개념이 도입되어

기본타입을 마치 객체처럼 사용할 수 있도록 편리한 기능이 도입되었다.

 

델파이도 비슷한 기능을 제공하는데 아마 XE8부터인가?.. 

도입시점을 알 수 없지만.. 엠바카데로 델파이 위키를 보면 XE3부터 지원되는 듯한데..

(검색해봤으나, 시원히 알려주는 자료를 찾지 못했습니다 ㅠㅠ)

 

아무튼..

델파이 헬퍼는 class나 record에서 사용가능한데 이 주제는 냅두고.. 

기본타입에 대한 헬퍼만 소개하겠다

 

예전에는

var intValue: Integer;

begin

  intValue:=  StrToInt('100')

end;

 

라고 작성했지만 기본타입에 대한 헬퍼덕분에 아래처럼 사용이 가능하다.

 

intValue:= '100'.ToInteger;

 

객체를 이용하듯이 기본타입에 메소드를 호출이 가능하다

 

여기서 기본타입은 

 

int, int64, string, double, extended, extended80등이 있다

 

TStringHelper만 보자면

    class function ToInt64(const S: string): Int64; overload; static; inline;

    class function ToSingle(const S: string): Single; overload; static; inline;

    class function ToDouble(const S: string): Double; overload; static; inline;

    class function ToExtended(const S: string): Extended; overload; static; inline;

    class function LowerCase(const S: string): string; overload; static; inline;

    class function UpperCase(const S: string): string; overload; static; inline;

 

등등의 메소드를 제공하며

 

var

  s: String;

begin

  '10'.ToDouble 이라던지

  s.ToDouble이라던지 사용이 가능하다

end;

 

별거 아닌것 같지만 사용해보면 행복에 겨운 코딩이 가능하다.

 

하지만 행복도 잠시

열거형에선 안되며, 심지어 TDateTime도 지원하지 않는다?

열거혈까진 이해하겠지만.. 도대체 왜?? TDateTime은 지원하지 않지?

System유닛에 TDateTime = type Double; 

이렇게 정의되서 그런가? 

 

아니 아무리그래도.. 고생스럽더라도 TDateTime정도의 헬퍼는 만들어줄수 있잖아??

 

TDateTimeHelper-master.zip
0.01MB

728x90
반응형

댓글