문제

저는 VB.NET 프로젝트에서 작업하는 C# 개발자이며 VS는 다음과 같은 BYREF 매개 변수가있는 함수를 호출 할 때 다음을 계속 사용하도록 노력합니다.

While reader.Read()
HydrateBookFromReader(reader:=???)

HydrateBookFrom Reader 함수에는 다음과 같은 시그니처가 있습니다.

Public Function HydrateBookFromReader(ByRef reader As SqlDataReader) As Book

왜 Intellisense는 내가 그것을 사용한다고 주장하는 이유는 = = 구성, 그리고 무엇을위한 것인가?

도움이 되었습니까?

해결책

vb에서 : = =는 이름이 지정된 매개 변수를 지정하는 데 사용됩니다.

Contact(Address:="2020 Palm Ave", Name:="Peter Evans")

이것은 선택적 매개 변수를 지정하는 데 특히 유용합니다.

다른 팁

왜 Intellisense는 내가 그것을 사용한다고 주장하는 이유는 = = 구성, 그리고 무엇을위한 것인가?

Intellisense는 그렇지 않다는 점에 유의해야합니다 주장하다, 그것 제안합니다. 귀하의 경우에이를 사용하는 것은 의미가 없습니다…이 기능은 주로 많은 선택적 매개 변수가있는 매우 긴 매개 변수 목록에 사용되며,이 기능은 마지막 파라미터 만 전달하려고합니다. Microsoft Office Interop과 함께 일할 때 유용합니다.

또한 (태그에서 언급하기 때문에) : 이것은 아무 관련이 없습니다. ByRef. ByRef 동일합니다 ref 그리고 out C#에서, 즉, 메소드는 매개 변수 자체를 조작 할 수 있습니다.

Intellisense는 다음을 제안 할 수 있지만, 구문을 제안 할 수도 있지만, 나는 그것이 그것없이 컴파일 될 것이라고 생각합니다.

HydrateBookFromReader(myReader);

옵션 매개 변수가 허용되는 향후 버전의 C#에서 이름 지정된 매개 변수를 사용하면 일부 매개 변수를 지정할 수 있지만 다른 매개 변수를 지정하고 선언 된 것과는 다른 순서로 매개 변수를 지정할 수 있습니다. 이름 지정된 매개 변수를 사용하면 전달되는 매개 변수의 목적을 선택적으로 명확히 할 수 있으므로 일부 경우 코드를 더 읽을 수 있습니다.

COM Interop의 경우 C# 4.0에서 명명 된 매개 변수가 특히 중요합니다. 여기서 많은 불필요한 매개 변수를 제거 할 수 있습니다.

Anders Hejlsberg는 채널 9에서 C#의 미래에 대해 훌륭한 토론을했습니다. http://channel9.msdn.com/pdc2008/tl16/. 이름이 지정된 매개 변수에 대한 그의 토론은 40 분 45 초입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top