我有现有的方法,每个方法都返回一个 String 类型。现在,我需要从一个方法返回附加值并将其传递给另一个。我发现一种方法是使用“out 参数”。
我要返回的值 (paramObject) 来自 MatchEvaluator 委托调用的方法。
var result = Regex.Replace(param1, pattern, new MatchEvaluator(m => MethodToMatch(m, param2, out SomeObject paramObject)));
这甚至可能吗?如果没有,是否有任何解决方法或其他方法来实现这一目标?
提前感谢您的帮助。
public class TextCompiler
{
public string Compile(string param1, string param2)
{
// some codes here ****
var pattern = @"@\{.*?}+";
var result = Regex.Replace(param1, pattern, new MatchEvaluator(m => MethodToMatch(m, param2, out SomeObject paramObject)));
// OnActionCompleted(paramObject); //the variable raises an error "The name does not exist in the current context."
return result;
}
protected string MethodToMatch(Match m, string param2, out SomeObject paramObject)
{
// Do something here ****
var myClass = new MyClass();
var cmd = "some strings";
string pm = myClass.Execute(cmd, param2, out SomeObject pObj);
paramObject = pObj;
return pm;
}
}
public class MyClass
{
public string Execute(string cmd, string param2, out SomeObject paramObject)
{
// ** Do something here..
var pObj = new SomeObject();
// ** Insert some values to pObj..
pObj = "some values here";
var str = "Example Only";
paramObject = pObj;
return str;
}
}