在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();
}
}
}
}
非常感谢提前!
答案 0 :(得分:2)
这是因为Ctlr + F7将执行您的应用程序。您已创建控制台应用程序,启动时将搜索静态Main
方法,该方法将在控制台窗口中执行。
按Ctrl + F7时无法执行任意代码。
如果要执行此类中的代码,则需要向Main
方法(将执行该方法)添加一些代码,以创建此类的实例并执行GetPortName
。
以下是一些显示控制台应用程序如何工作的MSDN documentation。
当您查看项目属性时(右键单击项目上的解决方案资源管理器并单击“属性”),您将看到一个项目“启动对象”。这指向包含应用程序起点的类。 Windows将在该类中查找Main方法,并从那里开始运行程序。
我不建议在Main
内移动所有代码。这将创建一个将执行所有逻辑的大功能。对于一个大小合理的程序,你的Main
方法会爆炸,维护是一场噩梦。在满足特定目标的对象中对代码进行分区可以帮助您构建更好的可维护程序。查看面向对象开发的基础知识,了解它如何提供帮助。这是一个指向维基百科的链接,其中包含Object Oriented Programming的一些信息。
您的代码的另一个问题是外部类无法受到保护。您需要将protected class consoleread
更改为public class ConsoleRead
(套管是为了便于阅读)。