2011-07-12 17 views
6

Po prostu ćwiczyłem kodowanie i zauważyłem, że mogłem użyć klasy zamiast modułu w VB .NET. Wymieniłem więc mój moduł do klasy i mam ten komunikat o błędzie:Jak zdefiniować metodę główną w klasie w stosunku do modułu?

Nie dostępny „Main” metoda z odpowiednim podpisem został znaleziony w „practicevb'.practicevb

Zrobiłem pewien, że startup obiekt został ustawiony poprawnie w Properties > Application > Startup Objects.

Komunikat o błędzie znika, gdy zmienię go z powrotem na Module, ale chcę zachować tę klasę, ponieważ pozostałe części kodu zmieniłem na klasy i nie zwróciłem ani nie otrzymałem komunikatów o błędach.

Class Atic 

    Sub Main() 
     Console.WriteLine("Hello, this proram will calcaulate the quadratic forumla ax^2 + bx + c") 
     Dim Quads As New Quads 
     Quads.Calc() 

     Console.ReadKey() 

    End Sub 

End Class 
+0

Fajne dzięki za wszystkie informacje. Co sugerowało NoAlias. Myślę, że zachowam to jako moduł, ponieważ brzmi to jak dobry pomysł. – nhat

Odpowiedz

12

Domyślam się, że aplikacja jest aplikacją wiersza poleceń . Udostępnij klasę publiczną i współdzieloną ...

Public Shared Sub Main() 

End Sub 
0

Modules to tylko klasy, w których wszyscy członkowie są udostępniani (statycznie w języku C#).

Jeśli chcesz zmienić moduł do klasy, wystarczy dodać modyfikator Shared do swoich członków:

Shared Sub Main() ... 

Mimo, naprawdę myślę modules are a good idea i to idealne miejsce, aby umieścić funkcję Main.

+0

Myślę, że jest on mylić z hardcore OOP w języku C#!:-) – Sudantha

+0

Myślę, że jest nowy w programowaniu w 'OOP', więc po prostu zastanawiam się rzeczy takie jak' (statyczne w C#). 'Wprawi go w zakłopotanie :-) – Sudantha

2

Jeśli jesteś NEW do klas

klas jest inna koncepcja niż moduł module to zbiór funkcji, ale class jest szablon, który powinien być instancji obiektu i wykorzystanie.

Najpierw przechodzimy chociaż podstawy OOP w VB.NET here

Jeśli urządzenie to Pro

Zastosowanie Shared Sub Main() ...

0

Główna metoda jest wymagana jako punkt początkowy dla aplikacji. Muszę być uleczalny bez tworzenia instancji obiektu, ponieważ nie ma możliwości zrobienia tego przed uruchomieniem programu.

Albo po prostu stwórz tę metodę i klasę statyczną, tak jak powiedziała bene, albo lepiej dla tego punktu wejścia, a następnie stwórz instancję i stamtąd.

0

Dla każdego przyszłego czytnika, jeśli Twój Main() jest w module (nie jest modułem klasy) i nadal otrzymujesz ten błąd, upewnij się, że metoda nie przyjmuje żadnych parametrów. W przeciwieństwie do C++, VB.NET nie przyjmuje argumentów wiersza poleceń jako parametrów metody głównej. Zamiast tego należy zdefiniować zero-parametrową metodę Main() i użyć , aby uzyskać dostęp do dostarczonych parametrów. Uderzyłem głową przez jakiś czas, zanim zdałem sobie z tego sprawę.

Powiązane problemy