我首先要说的是我不是开发人员。是的,这是一个c#噩梦。但这是一次性工具,就是这样。快速而肮脏它只需要工作就可以了。
我有以下代码:
public string[] get_status(string local_fname)
{
var dts_doc = new HtmlAgilityPack.HtmlDocument();
dts_doc.Load(local_fname);
//Pull the values
var ViewState = dts_doc.DocumentNode.SelectSingleNode("/html[1]/body[1]/div[1]/input[4]/@value[1]");
var EventValidation = dts_doc.DocumentNode.SelectSingleNode("/html[1]/body[1]/div[2]/input[1]/@value[1]");
string ViewState2 = ViewState.Attributes[3].Value;
string EventValidation2 = EventValidation.Attributes[3].Value;
//Display the values
//System.Console.WriteLine(ViewState.Attributes[3].Value);
//System.Console.WriteLine(EventValidation.Attributes[3].Value);
//System.Console.ReadKey();
return new string[] { ViewState2, EventValidation2 };
}
我想从Main.cs上的一个按钮调用get_status,它将显示带有ViewState2和EventValidation2的2个消息框。
同样,我不是开发人员,这可能是错误的做事方式。但我只需要一个快速而肮脏的解决方案来完成这项工作。
答案 0 :(得分:2)
试试这个:
foreach(string s in get_status(localFname))
{
MessageBox.Show(s);
}
正如你所说,它快速而又肮脏,我忠于这种范式。
是的,如果您需要访问另一个类,请使用 static 方法,或者只是创建一个实例并在其上调用该方法。我希望我能正确理解这个问题。
答案 1 :(得分:2)
通过将static关键字添加到函数定义来使函数变为静态:
static public string [] get_status(string local_fname)
使用班级名称来引用Main类中的函数。
答案 2 :(得分:0)
如果您使用的是visual studio,请转到要单击的按钮,然后双击该按钮。这将创建一个事件处理程序。在事件处理程序中,您应该调用上面的方法。
protected void Button1_Click(object sender, eventArgs e)
{
string local_fname = someValue;
string results[] = get_status(local_fname);
MessageBox.Show(results[0]);
MessageBox.Show(results[1]);
}