求助:把一个按钮事件里面的方法提取出来,做成公用方法,以便其他事件可以调用
--------------------编程问答-------------------- 鼠标把需要提取的代码选中,然后右键-重构-提取方法 --------------------编程问答-------------------- 看你意思是要获得多个返回值的需求吧,用ref 传参吧。public void GetStr(string strs ,ref string hostname,ref string service)
{
......
}
string hostname = "";//IP地址
string service = "";//服务名或实例名
setStr(strs ,hostname,service )
大概这个样子吧,没有编译过。 --------------------编程问答-------------------- 首先建议你:既然hostname、service、userid、password都要分别使用,为什么不当成单独的键值对写入config文件呢?这样用ConfigurationManager.AppSettings["hostname"]即可分别取得对应的参数值
第二:也可以把hostname、service、userid、password的作用域扩展到当前类,就是在按钮事件方法外声明这些变量,并用你现有的解析方法给他们赋值,那么以后的当前类的方法都可以直接使用这四个变量
第三:要做成公用的方法,可以
--------------------编程问答-------------------- setStr(strs ,ref hostname,ref service );
public string[] getArgs()
{
string strCnn = ConfigurationManager.AppSettings["conn"].ToString();
string[] strs = strCnn.Split(new char[3] { ';', '(', ')' });
string hostname = "";//IP地址
string service = "";//服务名或实例名
string userID = "";//用户名
string password = "";//密码
#region 获取
foreach (string str in strs)
{
if (str.Contains("HOST"))//SQLServer服务器名称
{
hostname = str.Substring(str.IndexOf("=") + 1);
}
else
{
if (str.Contains("SID"))
{
service = str.Substring(str.IndexOf("=") + 1);
}
else
{
if (str.Contains("User Id"))
{
userID = str.Substring(str.IndexOf("=") + 1);
}
else
{
if (str.Contains("Password"))
{
password = str.Substring(str.IndexOf("=") + 1);
}
}
}
}
}
string[] result = new string[4];
result[0] = hostname;
result[1] = service;
result[2] = userID;
result[3] = password;
return result;
}
--------------------编程问答-------------------- 三楼提议不错,这样其实可以建议作出对象。 --------------------编程问答-------------------- 谢谢三楼Michael_wlb1984,但要如何调用呢? --------------------编程问答-------------------- 比如我只要service的值 --------------------编程问答-------------------- 把你的方法里的所有代码行选取中,然后点击鼠标右键,选择“重构-->提取方法”,然后输入一个方法名称,再按回车即可。 --------------------编程问答-------------------- 谢谢三楼的提醒 --------------------编程问答--------------------
string[] result = getArgs();--------------------编程问答-------------------- 我现在把方法直接写在form_load事件中了
string service = result[1];
补充:.NET技术 , C#