Ответ 1
Перейдите в свойства проекта, щелкнув правой кнопкой мыши проект в проводнике решений и щелкнув свойства. На первой вкладке вы увидите раскрывающийся список для точки входа. Выберите соответствующий основной метод.
В моем проекте у меня есть более двух основных методов с одинаковой подписью. Один из них - winForm, а другой - класс консоли.
Как установить любую из них в качестве точки входа.
Я объявил [STAThread]
перед тем, как один из основных методов установить точку входа, но не работает?
Я использую Visual Studio express 2010
Перейдите в свойства проекта, щелкнув правой кнопкой мыши проект в проводнике решений и щелкнув свойства. На первой вкладке вы увидите раскрывающийся список для точки входа. Выберите соответствующий основной метод.
STAThread
не устанавливает точку входа - это вынуждает среду выполнения использовать однопоточную квартиру для потока, который выполняет Main.
Как говорит Джош, вам нужно установить объект запуска в свойствах проекта. Если это не показано в VS Express, вам может потребоваться заставить его отобразить расширенные свойства сборки: Откройте "Инструменты" \ "Параметры" и установите флажок "Показывать расширенную конфигурацию сборки" в "Проекты и решения".
Обратите внимание, что ваше приложение должно быть консольным приложением или приложением WinForms. Он может быть построен только как один (для каждой конфигурации). Вы либо закончите с консолью, когда вы начинаете, как приложение WinForms, или консоль не отображается, когда вы запускаете ее в качестве консольного приложения.
Рассматривали ли вы основную часть логики в библиотеке классов, а затем создавали два приложения-оболочки - одну WinForms и одну консоль - которые отображали только соответствующий пользовательский интерфейс, а затем делегировали библиотеку классов?
Если у программы есть два основных метода компилятора, получите confution, поэтому запустите С# program put main class give
public Class one
{
public static void main()
{
System.console.writeline("One");
}
public Class two
{
public static void main()
{
System.console.writeline("Two");
}
}
запустить С# в консоли
CSC Multimain.cs/main: one
CSC Multimain.cs/main: два
В одну программу можно поместить более одного основного метода, но программа с одним основным методом будет скомпилирована одновременно: Скопируйте этот код в редакторе и измените имя. Выпустите в первой строке и увидите изменение
#define Release
using System;
class Program
{
#if Release==true
public static void Main(string[] args) //for enemy
{
Console.WriteLine("go to hell");
Console.ReadLine();
}
#elif Release==false
static void Main(string[] args) //for friend
{
Console.WriteLine("hello ");
Console.ReadLine();
}
#endif
}
вы также можете сделать это, но я не знаю, как установить, какой основной метод будет точкой входа
public static void Main(string args)
{
Console.WriteLine("this is second main method");
}
public static void Main(string[] args)
{
Program.Main("second main method");
}
Эта проблема может быть легко решена с помощью шагов здесь 1. Откройте решение 2 разделили два класса на отдельные файлы классов 3. Нажмите вкладку "Проект" в главном меню 4. Переместите курсор в Свойство 5. Выберите нужное имя класса, которое вы хотите запустить для "Reference Path" 6. Скомпилируйте проект, ошибка будет отключена.
Я не думаю, что это сработает. Он даже не компилирует и не утверждает, что проект имеет два основных метода. В проекте должен быть только один метод public static main
. Вы должны переименовать/удалить второй.
Кстати, почему вы хотели бы оставить их обоих?