道歉,如果这听起来很复杂,我的词汇今天并不完全与我同在。
我有一个方法,我想使用.click 示例
middle.click();
但我还有另一个
end.click();
如果我想通过"中间"该怎么办?或者"结束"作为参数,是否可以这样做
MethodGo(string usedforSomethingElse, Func<string> thisMethod)
{
thisMethod.click();
}
答案 0 :(得分:2)
它必须看起来更像这样:
MethodGo(string usedforSomethingElse, ISomeObjectWithClickMethod thisObject)
{
thisObject.click();
}
或者,你可以这样做:
MethodGo(string usedforSomethingElse, Func<string> thisMethod)
{
thisMethod();
}
答案 1 :(得分:0)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Student
{
public interface IMyClick
{
string click();
}
}
--------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Student
{
public class Middle : IMyClick
{
public string click()
{
return "Middle Click";
}
}
}
---------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Student
{
public class End :IMyClick
{
public string click()
{
return "End Click";
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Student;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
IMyClick m1 = new Middle();
IMyClick e1 = new End();
string result = MethodtoGo(m1);
Console.WriteLine(result);
Console.Read();
}
static string MethodtoGo(IMyClick cc)
{
return cc.click();
}
}
}
在上面的代码中,您现在可以传递Middle或End类实例,因为它们都实现了相同的接口。 string result = MethodtoGo(m1); MethodToGo有一个类型为interface的参数,这意味着任何实现接口的类都可以作为输入传递给方法。
希望这会有所帮助。