C#의 <see also> 태그에서 메서드 오버로드에 대한 cref를 만드는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/419702

  •  03-07-2019
  •  | 
  •  

문제

"CompareOrdinal Overloads"와 같은 MSDN 링크를 참조하세요.C#에서 이러한 링크를 어떻게 작성할 수 있나요?

나는 시도했다:

<seealso cref="MyMethod">MyMethod Overloads</seealso>

그러나 컴파일러는 다른 오버로드가 있는 메서드에 대해 모호한 참조가 된다는 경고를 표시합니다.

(초보자 질문:오버로드에 연결하기 위해 실제로 이 태그를 작성해야 합니까, 아니면 문서 프로세서에 의해 자동으로 생성됩니까?)

도움이 되었습니까?

해결책

XML 문서에는 메서드의 모든 오버로드를 참조할 수 있는 방법이 없습니다.

C# 프로젝트에 가장 널리 사용되는 문서 생성기는 Sandcastle입니다.필요한 경우 오버로드 목록 페이지에 대한 링크가 자동으로 생성됩니다.따라서 멤버 목록 페이지에서 오버로드된 메서드의 이름은 한 번만 표시되며, 이를 클릭하면 해당 메서드에 대한 오버로드 목록 페이지로 이동하고 거기에서 특정 오버로드로 이동합니다.

Xml 문서에 오버로드 목록 페이지에 대한 링크를 배치하려면 사용 중인 외부 도구에 대한 깊은 지식이 필요하며 아마도 좋은 생각은 아닐 것입니다.

정말로 이것이 필요하다면 아마도 한 가지 방법은 특별히 형성된 ID를 가진 앵커를 사용하는 것입니다.대부분의 문서 생성기는 생성된 파일을 사전 또는 사후 처리하는 몇 가지 신비한 수단을 제공하며 이러한 앵커를 선택하고 이에 대한 적절한 href를 제공할 수 있는 기회를 제공해야 합니다.

OTH, 가치보다 더 큰 문제가 될 수 있습니다 ;)

다른 팁

타겟팅합니다 특정한 회원, 나는 당신이 단지 서명과 일치한다고 생각합니다.

/// <seealso cref="Foo(int)"/>
static void Foo() { }
/// <seealso cref="Foo()"/>
/// <seealso cref="Foo(float)"/> <------ complains
static void Foo(int a) { }

솔직히 말해서, 나는 "모든 오버로드"링크를 생성하는 방법을 잘 모르겠습니다. 나는 현명한 생성기가 이것을 자동으로 수행했다고 가정합니다.

Sandcastle을 사용하면 간단합니다.

<seealso cref="overloads:FullyQualifiedMyMethod">MyMethod Overloads</seealso>

FullequalifiedMymethod 네임 스페이스 및 클래스를 포함하여 오버로드에 도달하는 데 필요한 완전한 경로 (IE : System.Linq.enumerable.sum)

그러나 VB 컴파일러는 속성을 해결할 수 없다는 경고를 발행하여 무시할 수 있습니다.

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