Сегодня у меня произошло нечто странное в моей копии 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) { }
}
Когда я начинаю набирать DoWork (us, я получаю следующее от intellisense:
альтернативный текст http://i50.tinypic.com/285zfd.png
Обратите внимание, что он вызывает аргумент конструктора и заканчивается двоеточием: userName:
Что здесь происходит?
РЕДАКТИРОВАТЬ:
Как ответил Рид ниже, это новая функция C # 4 под названием Именованные и необязательные аргументы . Его цель - дать вам возможность указать имя аргумента, а не его позицию в списке параметров. поэтому вам не нужно запоминать позицию аргумента в списке аргументов, чтобы использовать его (хотя для intellisense это практически бессмысленно). Это облегчает использование необязательных аргументов.
Спасибо, Рид.