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。这将创建一个执行所有逻辑的大函数。对于一个合理大小的程序,您的Main方法会爆炸,维护起来将是一场噩梦。对满足特定目标的对象中的代码进行分区可以帮助您构建更好的可维护程序。研究面向对象开发的基础知识以了解这将如何提供帮助。这是 Wikipedia 的链接,其中包含有关Object Oriented Programming的一些信息。

您的代码有问题的另一件事是无法保护外部类。您需要更改protected class consolereadpublic class ConsoleRead(大小写是为了便于阅读)。

于 2012-08-14T10:11:17.870 回答