我想知道在 C# 中编写这种方法是否可以:public static string foo(string myString){ myString = Regex.Replace(somecode); return myString;}在其他地方做:myString => foo(myString)我是 C 用户(和 C++ 但新用户),我认为返回传递给函数的参数非常尴尬。有了这个程序可以完美运行,但它没有错误吗?我试图在网上查找,但找不到任何相关内容。谢谢你的帮助!
3 回答
神不在的星期二
TA贡献1963条经验 获得超6个赞
虽然可以,但不一定需要。在这种情况下,您根本不需要更改参数的值,您只需:
return Regex.Replace(somecode);
这样做是可以的,因为您将 的值传递myString
到参数中,而不是对字符串本身的引用,尽管可以通过在参数声明中使用ref
关键字来做到这一点。
DIEA
TA贡献1820条经验 获得超2个赞
我想知道是否可以
它是有效的,它将正常工作。
同时,重新使用该参数被认为是一种不好的做法。引入额外的可变成本绝对没有任何好处,并且有助于提高可读性:
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
TA贡献1835条经验 获得超7个赞
像你在这里所做的那样重新分配一个普通参数不会对传入的参数做任何事情,因为 的引用string作为值传递给方法,所以这样做很好。
这意味着你可以只写:
public static string foo(string myString){
return Regex.Replace(somecode);
}
达到完全相同的目的。
我会说修改一个参数是可以的,你只需要注意它实际上不会改变传入的参数。
- 3 回答
- 0 关注
- 241 浏览
添加回答
举报
0/150
提交
取消