0

Visual C#2010 Expressで、以下のコードでctr + F7を押すと、コンソールが開かないのはなぜですか?同じプロジェクトに複数の.csドキュメントがありますが、これだけを実行したいと思います。

using System;
using System.Collections.Generic;
using System.Text;
using System.IO.Ports;


namespace ConsoleRead
{
    protected class consoleread
    {
        public void GetPortName ()
    {
            string[] sPorts = SerialPort.GetPortNames();
            foreach (string port in sPorts)
            {
                var serialPort = new SerialPort();
                serialPort.PortName = port;
                serialPort.Open();
                serialPort.WriteLine("ATI"); 
                var message = Console.ReadLine(); 
            }
    }
    }
}

よろしくお願いします!

4

1 に答える 1

2

これは、Ctlr+F7がアプリケーションを実行するためです。コンソールアプリケーションを作成しました。起動すると、静的メソッドが検索Mainされ、コンソールウィンドウ内で実行されます。

Ctrl + F7を押すと、任意のコードを実行できません。

このクラスのコードを実行する場合は、メソッド(実行される)にコードを追加してMain、このクラスのインスタンスを作成し、を実行する必要がありますGetPortName

これは、コンソールアプリケーションがどのように機能するかを示すMSDNドキュメントです。

プロジェクトのプロパティを見ると(プロジェクトのソリューションエクスプローラーを右クリックして[プロパティ]をクリックすると)、アイテムのスタートアップオブジェクトが表示されます。これは、アプリケーションの開始点を含むクラスを指します。Windowsは、そのクラスでMainメソッドを探し、そこからプログラムの実行を開始します。

すべてのコードを内部に移動することはお勧めしませんMain。これにより、すべてのロジックを実行する1つの大きな関数が作成されます。適度なサイズのプログラムの場合、Mainメソッドが爆発し、維持するのは悪夢になります。特定の目標を達成するオブジェクトのコードを分割すると、より保守しやすいプログラムを構築するのに役立ちます。オブジェクト指向開発の基本を調べて、これがどのように役立つかを理解してください。これは、オブジェクト指向プログラミングに関する情報が記載されたウィキペディアへのリンクです。

コードのもう1つの問題は、外部クラスを保護できないことです。protected class consolereadに変更する必要がありますpublic class ConsoleRead(大文字と小文字は読みやすくするためです)。

于 2012-08-14T10:11:17.870 に答える