programing

Option Strict(옵션 제한) 및 Option Explicit(옵션 명시)의 역할은 무엇입니까?

showcode 2023. 5. 25. 22:12
반응형

Option Strict(옵션 제한) 및 Option Explicit(옵션 명시)의 역할은 무엇입니까?

이 게시물을 보았습니다.

오타... 옵션을 엄격하고 명시적으로 사용하십시오.제가 컨설턴트로 참여했던 한 소프트웨어 개발 프로젝트 동안, 그들은 도처에서 터무니없는 양의 오류를 겪고 있었습니다. 알고 보니 개발자는 철자를 쓸 수 없었고 잘못된 철자로 변수를 선언했습니다.값을 할당할 때 올바른 철자를 사용하기 전까지는 별 문제가 없습니다. 그리고 옵션을 명시적으로 해제할 수 있습니다.그들에게 감동을…."

란?Option Strict그리고.Option Explicit어쨌든? Basic이기 나는PHP를 하고 .구글에 검색해봤지만 아이디어가 떠오르지 않습니다(대부분 비주얼 베이직이기 때문에 PHP를 하고 있습니다).

Option Explicit모든 변수를 선언해야 함을 의미합니다.여기 보세요.그렇지 않으면 다른 변수 이름의 철자를 잘못 입력하는 것만으로 실수로 새 변수를 선언할 수 있습니다.이것은 VB 프로그램을 디버깅하고 프로그램이 제대로 작동하지 않는 이유를 알아내려고 할 때 많은 슬픔을 유발하는 것 중 하나입니다.제 생각에는, 이것은 심지어 선택사항이 되어서는 안 됩니다 - 그것은 항상 켜져 있어야 합니다.

Option Strict"암묵적 데이터 형식 변환을 확장 변환으로만 변환"여기 보세요.이 옵션을 활성화한 경우 한 데이터 유형을 실수로 정밀도가 낮은 다른 데이터 유형으로 변환할 수 없습니다(예: 데이터 유형의 데이터 유형).IntegerByte 기본적으로 다시, 기본적으로 설정해야 하는 옵션입니다.

TL;DR

Option Strict그리고.Option Explicit코드 컴파일 및 런타임 실패 대신 설계 시 잠재적 오류 및 실제 오류를 탐지할 수 있습니다.둘 다 전환해야 합니다. On.

옵션 엄격 및 옵션 명시적은 기본적으로 해제되어 있습니다.전원을 켜는 방법:

한 옵션Tools -> Options -> Projects and Solutions -> VB defaults -> Option Strict로 합니다.On.

옵션Tools -> Options -> Editor -> Require Variable Declaration째깍째깍

옵션 명시적

옵션 명시적 해제를 사용하면 변수를 사용하기 전에 선언(Dim)할 필요가 없습니다.

a = 123 'a is automatically declared as an Integer

한 곳에 변수를 선언하고 나중에 변수를 사용한다고 생각하지만 잘못 입력하면 위험해집니다.

Dim counter As Integer = 0
'some lines later...
countr = 55 'This creates a new variable called countr 

또는 범위에 포함된다고 생각되는 변수에 값을 할당하면 해당 값이 할당되지 않고 이름은 같지만 범위가 다른 새 변수를 선언하게 됩니다.

코드가 많거나 방법이 길면 놓치기 쉬우므로 이러한 문제를 방지하기 위해 항상 켜야 합니다.

옵션 엄격함

Option Strict Off(옵션 엄격 해제)를 사용하면 데이터 유형을 오류 없이 축소 유형으로 암시적으로 변환할 수 있습니다.

Dim d As Double = 999.99
Dim s As Single = d 'No error with Option Strict Off

이러한 경우 Option Strict는 개발자에게 이중 값이 절대 초과되지 않도록 경고하는 역할을 합니다.Single.MaxValue.

오류 없이 잘못된 값에 열거형을 할당할 수도 있습니다.다음은 이에 대한 실제 예입니다.

여기에 이미지 설명 입력

변수를 다음으로 설정해야 합니다.EOpticalCalStates.FAILED(24), 사실 그것은 국가를 다음과 같은 4의 값으로 설정합니다.EOpticalCalStates.ALI_HOR.

이와 같은 것은 발견하기가 쉽지 않습니다.

따라서 기본적으로 옵션 제한이 항상 설정되어 있어야 합니다.설정은 기본값으로 설정되어 있어야 하지만 Microsoft는 이전 버전과의 호환성을 높이기 위해 이 설정을 해제하기로 결정했습니다(후기적으로 IMO의 실수임).


새 프로젝트의 기본값을 설정하기 전에 프로젝트를 시작한 경우 다음을 사용해야 합니다.

"프로젝트" 메뉴 -> "속성..item -> "Compile" 탭 -> "Option strict"를 "On"으로 설정합니다.

자세한 내용은 여기에서 확인하십시오. http://support.microsoft.com/kb/311329

옵션 명시적 문

기본적으로 Visual Basic .NET 또는 Visual Basic 컴파일러는 명시적 변수 선언을 적용하므로 사용하기 전에 모든 변수를 선언해야 합니다.이 기본 동작을 변경하려면 기본 프로젝트 값 변경 섹션을 참조하십시오.

Option Strict 문

기본적으로 Visual Basic .NET 또는 Visual Basic 컴파일러는 엄격한 데이터 입력을 시행하지 않습니다.이 기본 동작을 변경하려면 기본 프로젝트 값 변경 섹션을 참조하십시오.

언급URL : https://stackoverflow.com/questions/2454552/what-do-option-strict-and-option-explicit-do

반응형