C# return a string from another void
我很确定这很容易。我只想从另一个空白处返回一条线。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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(' ')) { } } public static void HTMLWork(string baseURLStringCycle) { //do HTML work here // create x string string xString = ; //the result of the htmlwork } |
您不希望使用
1 2 3 4 5 | public static string HTMLWork(string baseURLStringCycle) { //... return xString; } |
在void方法中无法返回值,因为它是void方法。但有两种方法可以达到相同的结果。
不能从void函数返回字符串。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | public static void LinkWorker(string baseURLString) { // do some stuff here string xstring=HTMLWork(baseURLStringCycle) foreach(string xyString in xstring.split(' ')) { } 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关键字或传入引用。
例如
1 2 3 4 | public static void HTMLWork(string baseUrlStringCyle, out XResult) { string xString ="result"; } |
安东尼的回答是你最好的选择。
也可以使用"out"参数指定字符串的值。但如果可以直接从方法返回,则不应使用此方法
如:
1 2 3 4 | public static void HTMLWork(string baseURLStringCycle, out returnString) { returnString ="returned string"; } |
为什么不返回一个字符串而不是void?
您不希望更改函数签名并保留此空值,可以使用字符串作为参数,并在htmlwork函数中更改此值。C传递对象作为参考,这样就完成了技巧。
最简单但显然不是最好的方法是使Xstring成为
除此之外,除非您可以选择更改htmlwork方法,否则我没有选项。