2012-07-23 2 views
11

ReSharper를 사용하여 일부 C# 코드를 리팩토링하는 중입니다. 내가 겪었던 것들 중 하나는 익숙하지 않은 C# 연산자입니다. numRows의 정수입니다 내 코드에서신비한 "F 콜론"in C#

, 나는이

Mathf.FloorToInt(NumRows/2) 

했다. ReSharper에서 내가 f:이 float로서 numRows의 캐스팅을 알려줍니다 일부 플래그가 있음을 확신

Mathf.FloorToInt(f: NumRows/2) 

로 변경해야하지만 f: 온라인에 대한 모든 문서를 찾을 수 없음을 시사한다. 정확히 f:이 무엇인지 자세히 설명하거나 MSDN 페이지에 연결 시켜줄 수 있습니까?

(I 무엇 F의 좋은 아이디어를 가지고 있지만 : 그것은 콜론을 위해 인터넷을 검색 어렵다 않습니다, 그리고 나는 그것을 사용하기 전에이 무엇을 알고 싶습니다)

업데이트 1 : 그것이 내가 인수 이름 'F'를 추가 할 수 있음을 시사 실제로 비주얼 스튜디오이었다 밝혀 :는 상관없이 내가 할 노력하고있어, 나는

업데이트 2가 F-콜론 구문에 관심이 있어요 ReSharper가 아니지만 정답을 바꾸지는 마십시오 ..

+0

는 R 번호가 제안되어 인쇄 당신 * * (예를 들어, 경고)해야한다 또는 당신 * * (예를 들어, 정보/힌트) 수? – Lucero

+0

질문을 업데이트했습니다. 사실 Visual Studio 툴팁 이었지만 R # er 제안은 아닙니다. (너무 많은 것들이 갑자기 나타난다 ...) – Perchik

답변

20

그것은 named parameter입니다. Mathf.FloorToInt의 정의를 보면 f이라는 매개 변수가 있습니다.

Resharper는이 경우 명명 된 매개 변수를 사용하여 코드를보다 읽기 쉽게 만들 수 있음을 나타냅니다.

+0

고마워, 그게 내가 필요한거야. 나는 그것이 FloorToInt 특정일지도 모른다라고 생각하기 위해 멈춰 서지 않았다. – Perchik

+0

링크의 내용이 변경되거나 삭제 될 수 있으므로 정교하게 대답하지 않고 답변이 포함 된 링크를 게시하는 것은 바람직하지 않습니다. – Sturm

+3

@ NathanMann, 링크가 바뀔 수도 있지만 여기에 주어진 설명 ("명명 된 매개 변수")은 유효하지 않게 될 경우 Google에서 쉽게 찾을 수 있습니다 (단지 "C#"를 추가하면 필요한 정보). 때로는 정답도 짧습니다. – Lucero

9

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); 
} 

1 2 3 
2 3 1