Visual Basic에는 전통적으로 컴파일러에서 직접 인식 할 수있는 많은 수의 미리 정의 된 식별자가있었습니다. Printer 객체는 그 중 하나입니다. 후드에서이 코드는 [appobject] attribute으로 구현되었지만주의 깊게 숨겨져 있습니다. 런타임은 As New 구문과 마찬가지로 COM coclass의 인스턴스를 자동으로 만듭니다. DAO DBEngine 개체는 언어 파서에서 미리 정의되지 않은 개체의 예입니다.
이것은 Java와 마찬가지로 대규모 클래스 라이브러리가 포함 된 진정한 객체 지향 언어 인 VB.NET에서 끝났으며이를 수행했습니다. 더 이상 Printer 객체가 없으므로 PrintDocument 클래스를 사용해야합니다. Printer 개체는 Microsoft.VisualBasic.PowerPacks.Printing.Compatibility.VB6 네임 스페이스에서 사용할 수있는 레거시 코드에 대해 계속 지원됩니다. 그러나 인스턴스를 만들려면 새 키워드가 필요합니다.
VB6에서 많은 시간과 노력을 투자 할 때 모든면에서 심하게 오래된 언어입니다.
감사합니다. Employee라는 새 클래스를 만들고 AddEmployee라는 메서드가 있다고 가정 해 보겠습니다. 나는 Employee의 인스턴스를 생성해야만한다. (예를 들어) AddEmployee가 정적 메서드 인 것처럼 Employee.AddEmployee를 단순히 실행할 수는 없다. – w0051977
"거의 모든 것"을 정적으로 처리 할 수 없다. 여기서 런타임은 양식의 자동 인스턴스를 제공하지만 다른 객체에는 적용되지 않으므로 사용자가 만든 Employee 클래스에는 적용되지 않습니다. 프린터에 대해서는 런타임에서 제공하는 단일 객체입니다 – MarkJ
어떤 구문은 인식되고 다르게 처리됩니다. 인쇄는 하나의 특수한 경우이며 의사 메소드가 아닌 메소드가 아니라 메소드로 문서화되거나 객체 브라우저에 표시되거나 Intellisense 또는 With 블록과 함께 사용할 수도 없으며 일반적인 매개 변수 목록과 달리 "매개 변수"구문을 사용합니다. 예, 컴파일러는이 비니어를 실제 개체 방향 위에 적용하고 개체에 "새로 만들기" instationation 의미론, 양식 (및 심지어 클래스)은 미리 선언 된 "새로 만들기"전역 인스턴스를 가질 수 있습니다. – Bob77