将方法作为输入参数
本文关键字:输入 参数 方法 | 更新日期: 2023-09-27 18:05:25
我正在制作一个(简单的)应用程序,它向控制台显示相当多的文本,以便用户与之交互。在方法的每个部分完成后,出于美观的原因,我清理了控制台。由于我的方法基本上是其他方法的容器,这将是相当长的(我还没有完成它),这会产生很多代码重复,我想避免。
My (unfinished) method:
public void RegisterTheUser()
{
SpecialCaseVariables s = new SpecialCaseVariables();
Console.WriteLine(Variables.Default.registrationMsg + s.NewLine + s.NewLine);
Console.Clear();
string username = GetUsername();
Console.Clear();
string password = GetPassword();
Console.Clear();
string forename = GetForename();
Console.Clear();
string surname = GetSurname();
Console.Clear();
string displayAddress = GetDisplayAddress();
Console.Clear();
string phoneNumber = GetPhoneNumber();
Console.Clear();
Console.WriteLine(username + " " + password + " " + forename + " " + surname + " " + displayAddress + " " + phoneNumber);
VerifyLogin(username, password);
Console.ReadKey();
}
所以我想知道的是我怎么才能做一些类似于下面的事情:
private string DoMethodAndClear(method methodToDo) //the type would be method if it could work?
{
Console.Clear;
var result = methodToDo();
return result;
}
在我的RegisterTheUser方法中我可以有一堆DoMethodAndClear方法而不是x方法然后是clear y方法然后是clear
您可以使用Func<string>
委托:
private string DoMethodAndClear(Func<string> methodToDo)
{
var result = methodToDo();
Console.Clear();
return result;
}
然后调用:
string username = DoMethodAndClear(GetUsername);
string password = DoMethodAndClear(GetPassword);
string forename = DoMethodAndClear(GetForename);
string surname = DoMethodAndClear(GetSurname);
string displayAddress = DoMethodAndClear(GetDisplayAddress);