2011-05-01 6 views
0

私はVS 2010で新しいコンソールアプリケーションを作成しました。Program.cs以外のファイルからの出力の実行

私はProgram.csファイルの下にいくつかのコードを書いていました。今私は別のクラスを作成し、そこにコードを書いています。 他のクラスからプログラムを実行すると、出力はprogram.csファイルから呼び出されます。 出力がprogram.csファイルではなく別のクラスから反映されるようにプロジェクトを設定するにはどうすればよいですか?

+0

すべてのメソッドがメインメソッド... –

+0

で始まります。明確にするために、新しいクラスがあり、class1と呼びます。コンソール ? – Johnv2020

+0

@ Johnv:あなたは正しいです。私は新しいクラスを作成し、私はコンソールに出力したい –

答えて

1

のXORパワーは - 私はのように最高の

ここに可能な限りあなたのコメントにお答えするつもりです何を呼び出す必要がある場合他のクラスのメインメソッドではなく、ユーザー定義メソッドですか?

コンソールアプリケーションは、メインメソッドのみを持つことができます。これはアプリケーションのエントリポイントです。

新しいMainメソッドをプログラムに追加するには、最初にどのクラスを起動するかを変更する必要があります。これを行うには、単にProgramからメインメソッドを削除するだけです。CSとコンソールに表示するシンプルで

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

ません以下のように新しいクラスに追加:NOT私は他のクラスからコンソールに出力する必要がある場合はProgram.csの以外

いること一方、コンソールに書き込むクラスを取得する必要がある場合は、開始クラスではないので、メソッドを指定し、ConsoleWritelineを使用して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

.NETランタイムを使用すると、コンソールアプリケーションはいずれもMain()機能を持ちます。これは、アプリケーションを実行するためにランタイムによって実行されるアプリケーションのエントリポイントです。これはおそらくあなたのProgram.csにあります。あなたのコンソールアプリケーションでANYクラスからコンソールウィンドウに出力テキストのために

、あなただけに置く必要があります。

Console.WriteLine("Some message")

または

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

アプリケーションのコンソールウィンドウに出力します。あなたのコンソールアプリケーションにANYクラスのコンソールから入力を読み込むためには

、あなたが使用します

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

または

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

Here is a link to the complete API for the Console class in .NET 4

これはあなたが行くことを望みます。

+0

これは単純なコンソールへの表示ではありません:Program.cs以外の他のクラスからコンソールに出力する必要がある場合はありません –

+0

私はあなたが何を求めているのか分かりません。あなたはあなたのprogram.csコードと "新しい"クラスとそのコード例の周りにあなたの問題を指摘できますか? –

0

メインメソッド(通常はProgram.csにあります)内の他のクラスからオブジェクトを作成し、そのメソッドを呼び出す必要があります。

C#のメインメソッドは、通常、[[STAThread]]プロパティで識別されます。

だからあなたのクラス名がFooBarのであれば、mainメソッド内:

[STAThread] 
    static void Main(string[] args) 
    { 
     FooBar fooBar = new FooBar(); 
     fooBar.RunMethod(); 
    } 
+0

私は他のクラスのメインメソッドを呼び出す必要があり、ユーザー定義のメソッドは必要ない場合はどうすればいいですか? –

+0

@ Xorの場合、プロジェクトには 'Main'メソッドしかありません。 – David

0

まあ私はこれに遅れています。しかし、Program.csにMain Methodを書き込まず、実行中のOther Fileに書き込みます。または、Visual Studioではなくコンパイルと実行を行うためにC#cliコンパイラを使用してください

関連する問題