返回参数 C#

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


public static string foo(string myString){

    myString = Regex.Replace(somecode);

    return myString;

}

在其他地方做:


myString => foo(myString)

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


谢谢你的帮助!


四季花海
浏览 242回答 3
3回答

神不在的星期二

虽然可以,但不一定需要。在这种情况下,您根本不需要更改参数的值,您只需:return Regex.Replace(somecode);这样做是可以的,因为您将 的值传递myString到参数中,而不是对字符串本身的引用,尽管可以通过在参数声明中使用ref关键字来做到这一点。

DIEA

我想知道是否可以它是有效的,它将正常工作。同时,重新使用该参数被认为是一种不好的做法。引入额外的可变成本绝对没有任何好处,并且有助于提高可读性:public static string foo(string myString){    string result = Regex.Replace(somecode, ...);    return result;}也可以用foo您正在使用它的相同 lambda 风格编写:public static string foo(string myString) => Regex.Replace(somecode, myString, ...);

qq_花开花谢_0

像你在这里所做的那样重新分配一个普通参数不会对传入的参数做任何事情,因为 的引用string作为值传递给方法,所以这样做很好。这意味着你可以只写:public static string foo(string myString){    return Regex.Replace(somecode);}达到完全相同的目的。我会说修改一个参数是可以的,你只需要注意它实际上不会改变传入的参数。
打开App,查看更多内容
随时随地看视频慕课网APP