VB에서 #IF DEBUG를 사용하는 방법.그물
내부에서 클래스 변수에 값을 할당할 수 있습니까?#IF DEBUG
조건부로?
실행 중인 경우 기본 폼 로드 내부에서 일부 코드를 조건부로 실행하고 싶습니다.DEBUG
모드. 저는 다음과 같은 것을 할 수 있다고 생각했습니다.
Public Class Form1
public DEB as Integer
#if DEBUG then
DEB = 1
#else
DEB = 0
#end if
Private Sub Form1_Load(....)
if DEB=1 Then
<do something>
else
<do something else>
end if
....
하지만 변수에 값을 할당할 수 없는 것 같습니다.범위 지정을 제대로 이해하지 못하고 있는 것이 분명합니다.나는 그것을 넣을 수 없는 것 같습니다.#if DEBUG
Load(로드) 하위 루틴 내부.이거 어떻게 하는 거지?
컴파일 상수를 직접 테스트하는 것이 어떻습니까?실제 변수를 테스트하여 얻는 것은 없습니다.
Public Class Form1
Private Sub Form1_Load(....)
#if DEBUG then
<do something>
#else
<do something else>
#end if
End Sub
End Class
VB.NET Framework v4.5에서
디버거.첨부됨
Public DEB As Integer
If Debugger.IsAttached Then
DEB = 1
Else
DEB = 0
End If
당신의 문제를 이해할 수 없습니다.저는 이것을 하고 그것은 잘 작동합니다.컴파일 상수가 실행 중인 코드에서 직접 사용할 수 없다는 것은 조금 짜증 나지만 생각해보면 일리가 있습니다.
크리스찬에 대한 답변으로, 컴파일러 지침에 코드를 포함시키는 것에 반대하는 경우는 코드 변수를 사용하여 잠재적으로 중복이 적고 더 명확하고 설명적인 코드를 작성할 수 있으며 따라서 더 단순한 유지보수가 가능하다는 것입니다.
예를 들어, 표준 라이브러리 코드는 다음과 같습니다.
Public Module Common
#if DEBUG then
Public In_Debug As Boolean = True
#else
Public In_Debug As Boolean = False
#end if
End Module
Public Class Form1
Private Sub Form1_Load(....)
If In_Debug Then SplashScreen.Hide()
...
배치In-Debug
공용 모듈의 코드 변수는 프로젝트 전체에 걸쳐 상수로 취급할 수 있는 전역으로 효과적으로 만듭니다.
(예:디버그에서 스플래시 화면을 표시하지 않습니다. 대화 상자 등이 숨겨질 수 있기 때문입니다. 진행이 중단될 수 있습니다.)
TRACE 상수 또는 선언할 사용자 지정 컴파일러 상수에서도 동일한 작업을 수행할 수 있습니다.
그리고 GregH가 언급했듯이 프로젝트의 Debug 구성에서 DEBUG 상수가 실제로 선언되었는지 확인해야 합니다(실제로 "Debug"라고 불리는지 여부).릴리스에 선언할 필요는 없습니다. 이 정보가 없는 경우 "False"로 해석됩니다.
이게 제가 찾던 거예요!
If Debugger.IsAttached Then
DEB = 1
Else
DEB = 0
End If
@Karthikeyan P에게 감사합니다.
언급URL : https://stackoverflow.com/questions/3613249/how-to-use-if-debug-in-vb-net
'programing' 카테고리의 다른 글
"던지기"와 "던지기" 사이에 차이점이 있습니까? (0) | 2023.05.10 |
---|---|
전체 경로 없이 현재 디렉토리 또는 폴더 이름 가져오기 (0) | 2023.05.10 |
VBA 코드를 64비트 Windows와 호환되도록 하려면 어떻게 해야 합니까? (0) | 2023.05.10 |
mongo 명령을 사용할 수 없습니다. mac에서 명령을 찾을 수 없음을 표시합니다. (0) | 2023.05.10 |
윈도우즈의 로컬 파일 시스템 전반에서 GIT 클론 repo (0) | 2023.05.10 |