为了账号安全,请及时绑定邮箱和手机立即绑定

返回参数 C#

返回参数 C#

C#
四季花海 2021-08-22 15:51:02
我想知道在 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关键字来做到这一点。


查看完整回答
反对 回复 2021-08-22
?
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, ...);


查看完整回答
反对 回复 2021-08-22
?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

像你在这里所做的那样重新分配一个普通参数不会对传入的参数做任何事情,因为 的引用string作为值传递给方法,所以这样做很好。


这意味着你可以只写:


public static string foo(string myString){

    return Regex.Replace(somecode);

}

达到完全相同的目的。


我会说修改一个参数是可以的,你只需要注意它实际上不会改变传入的参数。


查看完整回答
反对 回复 2021-08-22
  • 3 回答
  • 0 关注
  • 241 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信