C#从另一个空返回一个字符串

本文关键字:一个 字符串 另一个 返回 | 更新日期: 2023-09-27 17:58:48

我确信这是一个简单的过程。我只是想从另一个空位返回一个字符串。

public static void LinkWorker(string baseURLString)
{
     // do some stuff here
     HTMLWork(baseURLStringCycle)
     --> this is where i need xstring returned
     foreach(string xyString in xstring.split(''n'))
     {
     }
}
public static void HTMLWork(string baseURLStringCycle)
{
     //do HTML work here
     // create x string
     string xString = ; //the result of the htmlwork
}

C#从另一个空返回一个字符串

您不想要void方法,您想要返回类型string的方法。

public static string HTMLWork(string baseURLStringCycle) 
{
     //... 
     return xString;
}

由于void方法是一个void方法,因此无法在void方法中返回值。但是有两种方法可以实现相同的结果。

  1. 使用全局变量,该变量在两种方法中都可以访问。然后,在HTMLWork方法中设置全局变量,并在LinkWorker的方法中访问相同的变量
  2. 通过引用将变量LinkWorker传递到HTMLWork。由于变量是通过引用传递的,HTMLWork中所做的更改将对LinkWorker可见

不能从void函数返回字符串。

public static void LinkWorker(string baseURLString)
{
// do some stuff here
string xstring=HTMLWork(baseURLStringCycle)
foreach(string xyString in xstring.split(''n'))
{
}
public static string HTMLWork(string baseURLStringCycle) //use string instead of void
 {
 //do HTML work here
// create x string
string xString = ; //the result of the htmlwork
return xString;
}

如果要使用Void方法,则应使用Out关键字或传入Reference。

例如

public static void HTMLWork(string baseUrlStringCyle, out XResult)
{
  string xString = "result";
}

为什么不返回字符串而不是void?

Anthony的答案是您的最佳选择。

也可以使用"out"参数为字符串赋值。但当可能直接从方法返回时,不应使用此方法

例如:

public static void HTMLWork(string baseURLStringCycle, out returnString) 
{
returnString  = "returned string";
}

最简单但显然不是最好的方法是将xString设置为global变量。

除此之外,除非你可以选择更改HTMLWork方法,否则我没有选择。

如果不想更改函数签名并保留此void,则可以使用字符串作为参数,并在HTMLWork函数中更改此值。C#将对象作为引用传递,这样技巧就完成了。