【发布时间】:2014-04-25 12:04:09
【问题描述】:
我正在构建一个用于显示 Smartgraph3 读数的程序。每当我开始调试时,命令行都会打开,但它会立即消失。我知道 ctrl + f5 有效,但我正在寻找一种解决方案,我不必输入相同的命令来防止它消失。
我用过 System("pause");但它一直在系统下出现一条蓝线,并且在错误列表中显示“系统”是一个“命名空间”,但它的使用就像一个“变量”。有谁知道怎么回事?
另外,我听说 System("pause") 不应该被使用,那么有人有同样有效的替代方法吗?
这是我的代码的副本。谢谢。
using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceModel;
using System.Text;
using Infowerk.SmartGraph3.SmartGraph3API;
//using CSTestClient.SmartGraph;
namespace CSTestClient
{
class Program
{
static void Main(string[] args)
{
TestAPI();
}
static void TestAPI()
{
System.ServiceModel.Channels.Binding service_binding = new BasicHttpBinding();
EndpointAddress endpoint_address = new EndpointAddress("http://localhost:8000/SmartGraph3API/APIV01");
SmartGraph3APIClient client = new SmartGraph3APIClient(service_binding, endpoint_address);
List<SG3APIDeviceIdentification> device_list = client.GetDeviceList();
foreach (SG3APIDeviceIdentification device_identification in device_list)
{
Console.WriteLine("device id: {0}", device_identification.DeviceId);
System("pause");
}
}
}
}
【问题讨论】:
-
两件事:(1) 不是
System("pause"),而是system("pause")(小写!),(2) 它可以在C/C++ 中使用,而且您使用的是C#,这是一个不同的平台!不仅仅是“他们说它不同,但我的程序仍然有效”,就像它在 C 和 C++ 中一样。 C# 与它们完全不同。 -
你应该质疑你的动机。您知道 CTRL+F5 有效,因此您已经有了“正确”的解决方案。为什么还希望它在调试模式下工作?不要在程序中人为地添加暂停(这将改变最终用户的预期行为),而是使用断点,这是在调试会话期间获得此行为的预期方式。
-
另外,您的问题非常令人困惑 - 您的标题是 C#,您的标签是 C++,您的评论是 C++,但是您的代码似乎是 C#,并且您已经接受了 C# 的答案。你到处都是 - 实际上预期的语言是什么?
-
在标题中编辑 C++ 并没有澄清任何问题,因为您的代码和接受的答案不是 C++。我现在认为这实际上是一个 C++/CLI 问题(我自己对 C# 不太熟悉,一开始我没有发现)。无论哪种方式,它都不是 C++,应该适当地标记(使用 C++-CLI 标记)。
-
@JBentley:不,它不是 C++/CLI,这绝对是简单的 C#。我认为这个问题的作者根本没有“感觉不同”。
标签: c# visual-studio