返回参数C#

时间:2018-06-20 06:50:48

标签: c# return

我想知道是否可以在C#中编写这种方法:

public static string foo(string myString){
    myString = Regex.Replace(somecode);
    return myString;
}

在其他地方可以做:

myString => foo(myString)

我是C用户(和C ++,但是新用户),我认为返回传递给函数的参数非常尴尬。有了这个程序可以完美运行,但它没有错误?我试图在线查找它,但找不到任何相关内容。

谢谢您的帮助!

4 个答案:

答案 0 :(得分:1)

  

我想知道是否可以

这是有效的,它将正常工作。

同时,重新使用参数被认为是不好的做法。引入额外的变量绝对不会花费任何费用,而且有助于提高可读性:

public static string foo(string myString)
{
    string result = Regex.Replace(somecode, ...);
    return result;
}

以与您在其中使用的相同的lambda样式编写foo也可以:

public static string foo(string myString) => Regex.Replace(somecode, myString, ...);

答案 1 :(得分:1)

虽然可以,但不一定需要。在这种情况下,您根本不需要更改参数的值,您只需:

return Regex.Replace(somecode);

可以这样做,因为您可以将myString的值传递给参数,而不是对字符串本身的引用,尽管可以使用ref keyword来做到这一点。在您的参数声明中。

答案 2 :(得分:0)

像在此处那样重新分配普通参数不会对传入的参数产生任何影响,因为string的引用将作为值传递给方法,因此可以这样做。

这意味着您可以编写:

public static string foo(string myString){
    return Regex.Replace(somecode);
}

实现完全相同的事情。

我想说修改参数是可以的,您只需要注意它实际上不会更改传入的参数。

答案 3 :(得分:-1)

是的,这很好,因为您正在处理参数,然后返回。函数主要是为此编写的,用于基于输入(参数)执行某些操作或以某种方式操纵参数(就像您所做的那样)