2009-11-05 6 views
1

저는 (일반적으로 처리하지 않는) VB.NET을 C#으로 변환해야하는 코드가 있습니다.VB.NET에서 분명히 존재하지 않는 변수에 대한 할당

코드는 Windows Forms 앱에있을 수 있습니다. 나는 같은 장소의 몇 가지주의 사항 : 변수가 정의 된 ParentWindow 없다

Public Sub New() 
    ParentWindow = Me 

을, 그리고 여기 상속하지 않는 것 :

Public Class MainWindow 
    Inherits System.Windows.Forms.Form 

    Private Shared parentWindow As MainWindow 
    '.... 

(주하지만이 있음 유사한 소문자 첫 글자와 가변)

이 :.

DocumentCount = 0; 
,

해당 변수 정의가없고 C#으로의 직접 변환은 Windows Forms에서 상위 클래스에 해당 멤버가 없음을 나타냅니다.

어딘가에 가져 오기가 누락되었거나 C#으로 직접 변환되지 않는 VB.NET 특유의 기능입니까?

답변

1

VB는 대소 문자를 구분하지 않으므로 실제로는 parentWindowdocumentCount에 할당됩니다.

내가 잠시 VB.NET에서 프로그래밍하지 않은이 엄격한 명시 적 옵션 또는 옵션 인 경우 기억할 수 없었다

+1

알았습니다. "C"스타일 언어로 변환 할 때 알아두면 좋은 점입니다. orignal 프로그래머가 스타일을 선택하고 그것에 붙이면 멋질 것입니다. – Buggieboy

3

이것이 작동하는 경우 Option Explicit이 꺼져있는 것 같습니다. 이것은 선언되기 전에 변수를 사용할 수있게 해주는 VB.Net의 기능입니다. 파일 상단에 다음을 추가하십시오.

Option Explicit On 
+0

(다른 의견에 대한 응답으로 수정 됨) ... –

+0

원래 VB.NET 코드가있다 "Option Strict On"에서 "Option Explicit On"하지만 변수는 어떤 시점에서 선언되어야합니다. 맞습니까? documentCount 및 parentWindow가 정의되었지만 대문자로 시작하는 다른 항목은 없습니다. – Buggieboy

+0

"documentcount"에 대소 문자를 구별하지 않으면 다음과 같은 결과가 나옵니다. 1) Private Shared documentCount As Integer 2.) DocumentCount = 0 3. 공용 공유 함수 GetDocumentCount() As Integer 4.) documentCount를 반환하십시오. 5.) documentCount + = 1 6.) DocID = MainWindow.GetDocumentCount() + 1 선행 대문자 "DocumentCount"변수는 .vb 파일에 한 번만 나타납니다. – Buggieboy

0

VB는 대소 문자를 구분하지 않습니다. 따라서 parentWindow와 ParentWindow는 동일한 변수를 참조 할 수 있습니다. 일반적으로 IDE가 문제를 해결하지만 ...

+0

기다려라. 나는 이것에 대해 downvoted했다. 그러나 받아 들였던 사람과 같은 대답을 줬다? –

관련 문제