나는 vb.net을 처음 사용하여 매우 실망합니다.클래스, 모듈 및 상호 작용에 대한 기본 질문
모든 좋은 프로그래머와 마찬가지로 기능을 기반으로 별도의 파일로 코드를 분할하고 싶습니다. 일부 코드는 양식을 통해 사용자와 상호 작용하고 일부는 현장에서 실험 장비와 상호 작용합니다 (직접적인 사용자 상호 작용 없음). 때로는 사용자가 실험실 장비에 영향을 줄 수있는 무언가를 변경하고 때로는 사용자가 알아야 할 실험실 장비에서 어떤 일이 발생할 수 있습니다. VS를 사용하여 파일을 만들 때 모듈 또는 폼을 선택해야합니다. VS는 다음과와 빈 파일을 생성하거나
공공 클래스 푸
최종 클래스
또는
모듈 푸
엔드 모듈
나는 한 무리가있는 경우 파일, 각 모듈, 모듈로 구성된 루틴을 친구로 정의하면 다른 모듈에서 호출 할 수 있습니다.
모듈 푸
Friend Sub DoSomeWork()
End Sub
엔드 모듈은 요금에
코드 푸에 루틴을 호출 할 수 있습니다 -
모듈 요금
을Friend Sub Stuff()
DoSomeWork()
End SUb
엔드 모듈
내가 만들 양식, VS cre 클래스를 선택합니다. 클래스에서 모듈에 정의 된 서브 루틴을 호출 할 수 있지만 모듈에서 클래스로 호출하려고하면 호출하려고하는 루틴이 선언되지 않은 오류가 발생합니다. 한 클래스에서 다른 클래스로 호출 할 수도 없습니다. 선언은 내 프로그램 외부의 라이브러리 루틴에만 적용되는 것처럼 보입니다.
나는 여러 가지 온라인 설명과 튜토리얼을 보았지만, 솔직히 이것들을 이해하지도 않고, "기본 클래스로부터 물려받은"그리고 그러한 "설명"에 포함 된 다른 모든 이야기에 관심을 두지 않는다. 내 응용 프로그램을 만드는 데 집중하고 싶습니다. 좋은 생각 - -
내 주요 형태는 처음 "모듈 푸"에서 "공공 부분 클래스 홈페이지를"이름을 변경하여 "메인"이름
내가 메인 클래스로 모든 모듈의 코드를 퍼팅 시도가있는 impossible-를 생성 중복 오류를 찾는다. 나는 Public Partial Class Main으로 정의하고 그들에게 모듈 코드를 넣는 빈 코드 파일을 만들려고 시도했다. - 이것은 Class Main의 코드에서 "Module"코드를 호출 할 수 있었고 (현재는 Main에 있음), 그 반대의 경우도 가능하다. ,하지만 다른 폼 (물론 나는 하나 이상을 가짐)이 자신의 클래스를 갖기 위해 VS에 의해 만들어지고 "모듈"코드가 모듈에서 클래스 메인으로 옮겨지면 다른 폼 (클래스)은 더 이상 코드를 호출 할 수 없습니다 .
코드와 데이터를 공유 할 수 있도록 모듈과 클래스를 정의하는 데 따라야 할 제조법 (모범 사례)이 필요합니다.다른 클래스에서 서브 루틴을 호출 할
아래에서답변 당신은 단순히 서브 루틴의 이름 앞에 클래스 이름을 넣어해야합니다.
그래서하지
DoSomeWork 여러분 모두가 아니라 나에게 프로그래머 경험이 분명있을 수 있습니다
()
하지만
Foo.DoSOmeWork(). Class-to-Module 호출이나 Class-to-Module 호출에 클래스/모듈 이름을 추가 할 필요는 없으며 Class로 만들어진 호출에만 추가 할 수 있습니다. 개인적으로, 일관성을 유지하기 위해서는 상황이 동일해야한다고 생각하지만, 아마도 일부 객체 지향 (OO) 규칙을 위반하게됩니다. 어쨌든 모두에게 감사드립니다.
이 ... –
내가 제안 당신은 VB를 떠나 C 변종 내용 (의 .NET 이후 C# .NET을하고 당신이 지금까지 배운 것은 C#으로 적용 할 수 있습니다) – Omar