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

본문 바로가기

vb.net

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

회원사진
하나를하더라도최선을
2022-06-29 11:31 5,016 0

본문



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

        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)



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

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

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

댓글목록0

등록된 댓글이 없습니다.
게시판 전체검색