Выполнение вывода из файла, отличного от Program.cs - PullRequest
0 голосов
/ 01 мая 2011

Я создал новое консольное приложение в VS 2010.

Я написал некоторый код в файле Program.cs.Теперь я создал другой класс и написал там код.Теперь, когда я выполняю программу из другого класса, вывод вызывается из файла program.cs.Как сделать настройку проекта так, чтобы вывод отражался из другого класса, а не из файла program.cs?

Ответы [ 4 ]

1 голос
/ 02 мая 2011

Xor power - я отвечу на ваши комментарии как можно лучше здесь

Что если мне нужно вызвать метод Main другого класса, а не какой-либо метод, определенный пользователем?

Консольное приложение может иметь только 1 основной метод - это точка входа для приложения.

Итак, чтобы добавить новый метод Main в вашу программу, вам нужно изменить, какой класс запускается первым, для этого просто удалите метод main из Program.cs и добавьте его в свой новый класс, как показано ниже

class NewClass
{
    static void Main(string[] args)
    {
        Console.WriteLine("hello, world");
    }
}

Нет, это просто вывод на консоль: НЕ то, что если мне нужно вывести на консоль любой другой класс, кроме Program.cs

С другой стороны, если вам нужно получить класс для записи в консоль, а это не начальный класс, вы должны указать метод и использовать Console.Writeline, как показали Dave & MrFox выше. Примеры этого приведены ниже

class Program
{

    static void Main(string[] args)
    {
        // use a instance of a class to write
        NewClass myNewClass = new NewClass();
        myNewClass.WriteOutPut();

        // use a static class
        NewClass2.WriteOutPut();

        // finally read back so that they we can see what was ouputted
        Console.ReadLine();
    }

}

/// <summary>
/// this is an instance class
/// </summary>
public class NewClass
{
    public void WriteOutPut()
    {
        Console.WriteLine("hello");
    }
}

/// <summary>
/// this is a static class
/// </summary>
public static class NewClass2
{
    public static void WriteOutPut()
    {
        Console.WriteLine("hello");
    }
}
0 голосов
/ 03 июля 2015

Ну, я опоздал на это.Но только не пишите Main Method в Program.cs и не пишите его в Другой файл, который вы выполняете.Или же используйте компилятор c # cli для компиляции и выполнения, а не Visual studio

0 голосов
/ 01 мая 2011

Вам необходимо создать объекты из другого класса в вашем основном методе (который обычно находится в Program.cs) и вызвать его методы.

Основной метод в C # обычно идентифицируется со свойством "[STAThread] ".

Так в методе main, если имя вашего класса FooBar:

    [STAThread]
    static void Main(string[] args)
    {
        FooBar fooBar = new FooBar();
        fooBar.RunMethod();
    }
0 голосов
/ 01 мая 2011

При использовании среды выполнения .NET любое консольное приложение будет иметь функцию Main(). Это точка входа в приложение, которое выполняется средой выполнения для запуска приложения. Возможно, он находится сейчас в Program.cs для вас.

Чтобы вывести текст в консольное окно из ЛЮБОГО класса в вашем консольном приложении, вам нужно просто поставить:

Console.WriteLine("Some message")

или

Console.Write("Some message without a linefeed after it")

для вывода в консольное окно вашего приложения.

Для чтения ввода с консоли в ЛЮБОМ классе в приложении console вы будете использовать

Console.ReadLine(**variable to take in input**);

или

Console.Read(**variable to take in input**);

Вот ссылка на полный API-интерфейс для класса консоли в .NET 4

Надеюсь, это поможет вам.

...