我有一个类“A”,我希望通过将一个函数作为参数传递给另一个不同的类“B”中的方法。作为参数传递的函数在B类中。如果我从A类调用方法,该怎么做呢?
我正在使用Visual Studio 2008和.NET Framework 3.5。
我已经看过这个post但是它告诉我如何通过将另一个方法作为参数传递来调用main方法,但是来自同一个类,而不是不同的类。
例如,在下面的帖子中提供了以下示例:
public class Class1
{
public int Method1(string input)
{
//... do something
return 0;
}
public int Method2(string input)
{
//... do something different
return 1;
}
public bool RunTheMethod(Func<string, int> myMethodName)
{
//... do stuff
int i = myMethodName("My String");
//... do more stuff
return true;
}
public bool Test()
{
return RunTheMethod(Method1);
}
}
但如何执行以下操作:
public Class A
{
(...)
public bool Test()
{
return RunTheMethod(Method1);
}
(...)
}
public class B
{
public int Method1(string input)
{
//... do something
return 0;
}
public int Method2(string input)
{
//... do something different
return 1;
}
public bool RunTheMethod(Func<string, int> myMethodName)
{
//... do stuff
int i = myMethodName("My String");
//... do more stuff
return true;
}
}
答案 0 :(得分:2)
您需要在class B
内创建class A
的实例,然后调用该方法,例如,将您的class A
更改为:
public Class A
{
(...)
private B myClass = new B();
public bool Test()
{
return myClass.RunTheMethod(myClass.Method1);
}
(...)
}
答案 1 :(得分:1)
试试这个
uniq_ID