我是新手代码,大部分工作都有效,但我无法运行此代码。有人可以帮忙吗?
我尝试了using System.Forms
,但它显示缺少命名空间。当我使用using System.Windows.Forms
时,该消息消失了。它不允许我同时使用它们。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Windows.Forms;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
StreamReader sr = new StreamReader(@"file.csv");
// for set encoding
// StreamReader sr = new StreamReader(@"file.csv", Encoding.GetEncoding(1250));
string strline = "";
String[] _values = null;
int x = 0;
while(!sr.EndOfStream)
{
strline = sr.ReadLine();
_values = strline.Split(',');
if (_values.Length >= 6 && _values[0].Trim().Length > 0)
{
MessageBox.show(_values[1]);
}
}
sr.Close();
}
}
}
答案 0 :(得分:5)
没有此类名称空间System.Forms
,您尝试使用的类(MessageBox
)位于System.Windows.Forms
。通过更正using
语句,错误就消失了。
请记住,您必须在控制台应用中引用System.Windows.Forms.dll
才能使用此类。
答案 1 :(得分:5)
您需要在项目中引用System.Windows.Forms.dll
。 Here是如何做到的详细说明。
答案 2 :(得分:3)
没有 System.Forms 这样的命名空间只有一个名为 System.Windows.Forms 的命名空间,你正在谈论MessageBox
类关于。为了能够使用它,您需要将 System.Windows.Forms.dll 的引用添加到您的项目中(在“添加引用...”的.NET选项卡中找到它)对话框)它会工作。另请注意,MessageBox.Show()
需要大写'S'。请参阅下面的代码的优化和完整工作版本。
using System.IO;
using System.Windows.Forms;
namespace ConsoleApplication7
{
class Program
{
static void Main(string[] args)
{
using (StreamReader sr = new StreamReader(@"file.csv"))
{
while (sr.Peek() >= 0)
{
string strline = sr.ReadLine();
string[] values = strline.Split(',');
if (values.Length >= 6 && values[0].Trim().Length > 0)
{
MessageBox.Show(values[1]);
}
}
}
}
}
}
答案 3 :(得分:2)
您首先尝试在控制台应用程序中使用它,您应该在引用中添加System.Windows.Forms
dll(来自.Net参考选项卡),然后通过添加它的命名空间来使用它。
答案 4 :(得分:1)
System.Forms
的名称空间。它总是System.Windows.Forms
。 MessageBox类在System.Windows.Forms
中定义
您需要手动添加对System.Windows.Forms
项目的引用,因为您在控制台应用程序而不是Windows应用程序上。只需添加引用。