我想知道是否可以在C#中编写这种方法:
public static string foo(string myString){
myString = Regex.Replace(somecode);
return myString;
}
在其他地方可以做:
myString => foo(myString)
我是C用户(和C ++,但是新用户),我认为返回传递给函数的参数非常尴尬。有了这个程序可以完美运行,但它没有错误?我试图在线查找它,但找不到任何相关内容。
谢谢您的帮助!
答案 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)
是的,这很好,因为您正在处理参数,然后返回。函数主要是为此编写的,用于基于输入(参数)执行某些操作或以某种方式操纵参数(就像您所做的那样)