C# 我可以同时返回Action和string吗?

C# 我可以同时返回Action和string吗?,c#,C#,如果使用stringresult=SendMessage(“hey”),我会得到nullreferenceexception 编辑: 我真的需要做两个函数吗 string Result = SendMessage("hey"); SendMessage("hey", a => { Console.WriteLine(a); }); 公共字符串发送消息(字符串命令){ 字符串响应=“测试”; 返回响应; } public void SendMessage(字符串命令、操作结果){

如果使用
stringresult=SendMessage(“hey”),我会得到nullreferenceexception

编辑: 我真的需要做两个函数吗

string Result = SendMessage("hey");
SendMessage("hey", a => { 
   Console.WriteLine(a);
});
公共字符串发送消息(字符串命令){
字符串响应=“测试”;
返回响应;
}
public void SendMessage(字符串命令、操作结果){
字符串响应=“测试”;
结果(反应);
}
公共字符串发送消息(字符串命令,操作结果=null){
字符串响应=“测试”;
结果?.Invoke(response);//此处
返回响应;
}

这将解决您的问题

响应变量应该是什么您需要提供更多代码来涵盖SendMessage中的内容。另外,使用调试器查看其失败的位置响应不是我编辑代码的原因再次查看看起来第二个参数是可选的,但是你每次都在调用它?我得到了nullreferenceexception,因为
Result=null
但是如果我不将它设为null,我就不能使用
string Result=SendMessage..
更新了我的答案吗?忽略空值?是?。将在执行下一步之前检查对象是否为nullmethod@schokobong,请查看以了解更多信息
string Result = SendMessage("hey");
SendMessage("hey", a => { 
   Console.WriteLine(a);
});
public string SendMessage(string command) {
  string response  = "test";
  return response;
}

public void SendMessage(string command, Action<string> Result) {
  string response  = "test";
  Result(response);
}
public string SendMessage(string command, Action<string> Result = null) {
  string response  = "test";
  Result?.Invoke(response); // here
  return response;
}