当前位置:  开发笔记 > 编程语言 > 正文

帮助解决简单的C#错误

如何解决《帮助解决简单的C#错误》经验,为你挑选了4个好方法。

我正在编写这个小程序,从文本文件中提取任意数量的电子邮件地址.我收到两个错误,"使用未分配的局部变量." 而且我不确定为什么.

static void Main(string[] args)
{
string InputPath = @"C:\Temp\excel.txt";
string OutputPath = @"C:\Temp\emails.txt";
string EmailRegex = @"^(?:[a-zA-Z0-9_'^&/+-])+(?:\.(?:[a-zA-Z0-9_'^&/+-])+)*@(?:(?:\[?(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))\.){3}(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\]?)|(?:[a-zA-Z0-9-]+\.)+(?:[a-zA-Z]){2,}\.?)$";
string Text = String.Empty;
StringBuilder Output;
List Emails;

using (TextReader tr = new StreamReader(InputPath))
{
    Text = tr.ReadToEnd();
}

MatchCollection Matches = Regex.Matches(Text,EmailRegex);

foreach (Match m in Matches)
{
    Emails.Add(m.ToString().Trim()); // one error is here
}

foreach (String s in Emails)
{
    Output.Append(s + ","); // the other error is here
}

using (TextWriter tw = new StreamWriter(OutputPath))
{
    tw.Write(Output.ToString());
}
} 

对不起格式化...我有点紧迫!

编辑:哇.我是个白痴 - 一定是因为我时间紧迫!!!!



1> Dave Markle..:

您没有初始化StringBuilder和List.

StringBuilder Output = new StringBuilder();
List Emails = new List();



2> lavinio..:

问题出在这里:

StringBuilder Output;
List Emails;

你还没有初始化EmailsOutput.尝试:

StringBuilder Output = new StringBuilder();
List Emails = new List();



3> Mitch Wheat..:

您没有创建Stringbuilder或电子邮件列表:

StringBuilder Output = new StringBuilder();
List Emails = new List(); 



4> d4nt..:

您的"输出"和"列表"变量未分配对象实例.更改:

StringBuilder Output;
List Emails;

StringBuilder Output = new StringBuilder();
List Emails = new List();

推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有