자료실

부자는 돈을 써서 시간을 아끼지만 가난한 사람은 시간을 써서 돈을 아낀다

vb.net

IT HUB를 찾아주셔서 감사합니다.

기타 [vb.net] "하드코딩"과 "소프트코딩"(로딩)

페이지 정보

profile_image
작성자 하나를하더라도최선을
댓글 0건 조회 7,443회 작성일 22-06-29 11:31

본문

오래간만에 질문이 올라온 글을 보다가 아래와 같은 소스를 발견하였다.​

        Select Case m_cmbSaveAs.Text
            Case "*.bmp"
                m_bitmap.Save(strFileName, ImageFormat.Jpeg)
            Case "*.jpg"
                m_bitmap.Save(strFileName, ImageFormat.Jpeg)
            Case "*.gif"
                m_bitmap.Save(strFileName, ImageFormat.Gif)
            Case "*.tif"
                m_bitmap.Save(strFileName, ImageFormat.Tiff)
        End Select

이와 같은 소스를 아래처럼 줄일 수 있다

Dim extension As String = IO.Path.GetExtension(strFileName).ToLower.Replace("jpg""jpeg")
Dim imgFormat As ImageFormat = CType(GetType(ImageFormat).GetProperty(extension, BindingFlags.[PublicOr BindingFlags.[Static] Or BindingFlags.IgnoreCase).GetValue(NothingNothing), ImageFormat)
m_bitmap.Save(strFileName, imgFormat)



둘 다 장단점이 있겠지만 난 아래 방법을 선호한다.

무엇보다 확장자 추가에 따른 대응이 쉽다는 장점이 있다

위 소스코드는 이미지 형식을 추가할 경우 더 많은 소스코드 수정이 들어간다.

댓글목록

등록된 댓글이 없습니다.