Почему в списке автозаполнения Visual Studio есть такие же мои переменные с символом «:»? - PullRequest
6 голосов
/ 14 декабря 2010

В чем разница между myVar и myVar: в списке автозаполнения VS при работе с функциями. Почему второй добавлен в этот список?

Ответы [ 4 ]

20 голосов
/ 14 декабря 2010

C # 4.0 введены именованные аргументы .Эта функция позволяет идентифицировать аргументы метода по их именам, а не по их позиции:

public void Foo(int bar, string quux)
{
}

// Before C# 4.0:
Foo(42, "text");

// After C# 4.0:
Foo(bar: 42, quux: "text");

// Or, equivalently:
Foo(quux: "text", bar: 42);

Intellisense был обновлен для поддержки этой функции, поэтому его механизм автозаполнения теперь предлагает оба варианта, когда символ доступен из текущегоимя области действия совпадает с именем аргумента метода.

6 голосов
/ 14 декабря 2010

Это, вероятно, когда вы устанавливаете значение для параметра при вызове метода, да? В C # .NET 4 вы можете установить именованные параметры при вызове метода. Это устраняет необходимость ввода параметров в установленном порядке.

private void MyMethod(int width, int height){
   // do stuff
}

//These are all the same:
MyMethod(10,12);
MyMethod(width: 10, height: 12);
MyMethod(heigh: 12, width: 12);
2 голосов
/ 14 декабря 2010

В дополнение к тому, что написали другие: первая - это (локальная) переменная или поле, а последняя - имя параметра вызываемого метода.В коде:

private void MyFirstMethod(int myVar)
{
    Console.WriteLine(myVar);
}

private void MySecondMethod(int myVar)
{
    MyFirstMethod(myVar); // Call with the value of the parameter myVar
    MyFirstMethod(myVar: myVar); // Same as before, but explicitly naming the parameter

    MyFirstMethod(5); // Call with the value 5
    MyFirstMethod(myVar: 5); // Same as before, but explicitly naming the parameter
}
2 голосов
/ 14 декабря 2010

это очень крутая функция.это позволяет вашему коду быть более терпимым к изменениям порядка параметров ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...