我正在使用ReSharper重构一些c#代码.我遇到的一件事是我不熟悉的ac #manrator.
在我的代码中,我有这个
Mathf.FloorToInt(NumRows/2)
Run Code Online (Sandbox Code Playgroud)
其中NumRows是一个整数.ReSharper建议我将其更改为
Mathf.FloorToInt(f: NumRows/2)
Run Code Online (Sandbox Code Playgroud)
我很确定这f:是一个标志,告诉它将NumRows转换为浮点数,但我找不到任何f:在线文档.任何人都可以详细说明究竟是f:做什么或将我链接到MSDN页面吗?
(虽然我很清楚f:做什么,但是很难在互联网上搜索冒号,我想在使用之前知道它做了什么)
更新1:无论我想做什么,我都对f-colon语法感兴趣
更新2:事实证明,实际上Visual Studio建议我可以添加参数名称'f'而不是ReSharper,但这不会改变正确的答案..
Bri*_*sen 20
这是一个命名参数.看看定义Mathf.FloorToInt,它将有一个名为的参数f.
Resharper指示在这种情况下通过使用命名参数可以使代码更具可读性.
在C#4.0中,您可以在方法调用中切换参数表达式.
当只有一个参数时,它对你没什么帮助,如果有的话:如果只有一个参数,表达式代表什么是毫无疑问的.但是,使用多个参数时,该功能会更有用:您可以将参数名称与表示其值的表达式配对,并以您喜欢的任何顺序传递参数.程序的读者不需要引用方法签名来理解什么表达式代表哪个参数.
private static void MyMethod(int a, int b, int c) {
Console.WriteLine("{0} {1} {2}", a, b, c);
}
public static void Main(string[] args) {
MyMethod(1, 2, 3);
MyMethod(c:1, a:2, b:3);
}
Run Code Online (Sandbox Code Playgroud)
这打印
1 2 3
2 3 1
Run Code Online (Sandbox Code Playgroud)