2011-08-22 5 views
2

최근에 VB.NET을 배우기 시작했으며 1 단계 학습 초보자 용 책을 읽었으며 이제는 고급 책으로 옮겨 가고 있으며 둘 다 실제로 어떤 점을 설명하지 못했습니다. 모듈 및 클래스가 있습니다.VB.NET, 클래스 및 모듈 Vs 함수

모듈과 클래스는 단순히 함수와 하위 프로 시저를 구성하는 방식입니까?

예. 100 가지 다른 수학 함수가 포함 된 MyMathClass라는 클래스는 100 개의 비 관련 함수가있는 파일에 비해 쉽게 건너 뛸 수 있습니다.

+0

클래스를 함수 모음과 함께 사용하지 마십시오. 나는이 책들이 모듈이 무엇인지를 설명하는데 실패 하였을뿐만 아니라 - 훨씬 더 중요하다 - 어떤 객체와 객체가 어떤 객체와 관련되는지를 두려워한다 (http://oreilly.com/catalog/objectvbnet/chapter/ch01). .pdf). –

+0

[여기] (http://msdn.microsoft.com/en-us/library/dd460654.aspx) .NET의 OOP에 대한 자세한 정보입니다. 그런데 모듈은 실제로 특정 문맥에 대한 함수 콜렉션과 같습니다 (fe. Math-Algorithms). 하지만 (공개) 생성자가없고 모든 함수/속성이 [공유]되어 있으므로 OOP 개념을 이해하지 못하기 때문에 모듈을 처음부터 피할 것입니다 (http://msdn.microsoft.com/de-de/library). /zc2b427x.aspx). –

답변

4

모듈은 VB6의 나머지 부분입니다. 호환성을 위해 필요합니다. 처음부터 프로그래밍 할 때 사용하는 것이 중요하지 않습니다. 그 (것)들을 가진 가장 큰 문제는 그들이 세계적인 이름 공간을 오염시킨다이다. 그것은 처음에는 좋았지 만 아주 저울질합니다. 그러나 여전히 확장 메서드를 만드는 데 사용되며 전역 네임 스페이스에 추가하면 의도 한 효과가 발생합니다.

Grokking 클래스는 객체 지향 프로그래밍을 이해해야합니다. 그것은 합리적으로 SO 게시물에 맞지 않을 수 있습니다, 거기에 많은 입문 서적은 grok에서 당신을 도와줍니다.

+2

모듈은 C# 정적 클래스와 같으며 VB에서 확장 메서드를 작성하는 유일한 방법이므로 새 프로그램을 계속 사용합니다. –

+0

포인트가 있으며 업데이트 된 게시물입니다. –

0

Tim Schmelter에 동의합니다. OOP 원칙을 배우고 있기 때문에 확장 메소드를위한 모듈을 사용하고 있지만 클래스를 사용하는 것에 충실하십시오. 클래스를 사용하면 학습 단계에서 혼란을 불러올 수있는 모듈을 고려하지 않고 OOP (캡슐화, 상속 및 다형성)의 3 가지 기둥을 실제로 활용할 수 있습니다.