Как определить метод Main в классе против модуля? - PullRequest
7 голосов
/ 12 июля 2011

Я просто занимался программированием и заметил, что смог использовать класс вместо Module в VB .NET.Поэтому я заменил свой модуль на класс и получил следующее сообщение об ошибке:

В 'practicevb' .practicevb

не найдено ни одного доступного метода Main с соответствующей подписью.Я удостоверился, что объект запуска был установлен правильно в Properties > Application > Startup Objects.

Сообщение об ошибке исчезнет, ​​если я верну его обратно в Module, но я хотел бы сохранить его класс, так как другие части моего кода я изменил накласс и не возвращаются и сообщения об ошибках.

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

Ответы [ 6 ]

14 голосов
/ 12 июля 2011

Я предполагаю, что ваше приложение является приложением командной строки.Сделать класс Public и Shared ...

Public Shared Sub Main()

End Sub
2 голосов
/ 12 июля 2011

Если вы NEW для классов

Классы - это другое понятие, чем модуль module - это набор функций, но class - это шаблон, который должен создавать экземпляр объекта и использовать.

Сначала рассмотрим основы ООП в VB.NET здесь

Если вы Pro

Использование Shared Sub Main() ...

1 голос
/ 12 июля 2011

Модули - это просто классы, в которых все члены являются общими (статические в C #).

Если вы хотите изменить модуль в класс, просто добавьте модификатор Sharedчлены:

Shared Sub Main() ...

Хотя я действительно считаю, что модули - это хорошая идея и идеальное место для использования вашей функции Main.

0 голосов
/ 07 января 2019

Определите Public Sub Main процедуру для вашего проекта.Объявите его как Shared тогда и только тогда, когда вы определите его внутри класса.

0 голосов
/ 12 апреля 2016

Для любого будущего читателя, если ваш Main() находится в Module (не Class Module), и вы все еще получаете эту ошибку, убедитесь, что метод не принимает никаких параметров.В отличие от C ++, VB.NET не принимает аргументы командной строки в качестве параметров метода Main.Вместо этого вы должны определить метод Main () с нулевым параметром и использовать My.Application.CommandLineArgs для доступа к предоставленным параметрам.Я ударился головой некоторое время, прежде чем понял это.

0 голосов
/ 12 июля 2011

Основной метод требуется в качестве точки входа ваших приложений.Мне нужно быть вызываемым без создания экземпляра объекта, так как до запуска вашей программы это сделать невозможно.

Либо просто сделайте этот метод и класс статическими, как было сказано выше, либо лучше, чтобы модуль был только для этоготочка входа, затем создать экземпляр объекта и перейти оттуда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...