Eri*_*sch 2 resharper intellisense optional-parameters c#-4.0
今天我在Resharper 5的副本中发生了一些奇怪的事情.我有一个看起来像这样的类:
public class Foo
{
public string Username { get; private set; }
public Foo (string userName) { Username = userName; }
public void Bar()
{
DoWork(Username);
}
public void DoWork(string userName) { }
}
Run Code Online (Sandbox Code Playgroud)
当我开始输入DoWork时(我们从intellisense获得以下内容:
alt text http://i50.tinypic.com/285zfd.png
请注意,它正在提取构造函数参数,并以冒号结束:userName:
这里发生了什么?
编辑:
正如Reed在下面回答的那样,这是一个名为Named和Optional Arguments的新C#4功能.它的目的是允许您指定参数的名称,而不是它在参数列表中的位置.所以你不必记住参数列表中参数的位置来使用它(尽管这对于intellisense来说基本上没有意义).它确实使可选参数更容易使用.
谢谢里德.
这是Resharper为Named和Optional Arugments提供intellisense支持.
C#4增加了对这些的支持.您现在可以使用如下定义的方法:
public void DoWork(int someArgument = 3, string userName = "default")
{
// ...
Run Code Online (Sandbox Code Playgroud)
如果要使用不同的"userName"调用它,但保留其他参数的默认值,则可以执行以下操作:
this.DoWork(userName: "FooUser");
Run Code Online (Sandbox Code Playgroud)
Resharper 5在intellisense中添加了对此语法的支持.
归档时间: |
|
查看次数: |
327 次 |
最近记录: |