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

时间:2011-06-10 15:31:46

标签: c#

我很确定这很容易。我只是想从另一个空格中返回一个字符串。

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
}

8 个答案:

答案 0 :(得分:7)

您不需要void方法,您希望方法返回类型string

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

答案 1 :(得分:4)

无法在void方法中返回值,因为它是一个void方法。有两种方法可以达到相同的效果。

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

答案 2 :(得分:3)

您无法从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;
}

答案 3 :(得分:2)

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

e.g。

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

答案 4 :(得分:1)

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

答案 5 :(得分:1)

Anthony's Answer是您最好的选择。

也可以使用'out'参数指定字符串的值。但是当它可以直接从方法

返回时,不应该使用它

例如:

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

答案 6 :(得分:0)

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

除此之外,除非您可以选择更改HTMLWork方法,否则我将无法使用。

答案 7 :(得分:0)

您不希望更改函数签名并保持此void,您可以使用string作为参数并在HTMLWork函数中更改它。 C#传递对象作为参考,所以诀窍就完成了。