확장 메서드가 호출 된 참조의 이름을 가져옵니다.

Kornél Regius

MyExtensionMethod라는 확장 메서드가 있다고 가정 해 보겠습니다.

다음과 같이 사용하고 싶습니다.

var x = new MyClass()
x.MyExtensionMethod()

그런 다음 확장 메서드 내에서 호출 된 참조의 이름을 가져오고 싶습니다.

public static void MyExtensionMethod(this object param)
{
    //get the name "x" somehow
}

이것이 가능한가?

샘 하웰

C #에서는 불가능합니다. 사용 가능한 정보는 다음과 같습니다.

  1. 호출 메서드의 이름입니다.
  2. 호출이 발생하는 파일의 이름입니다.
  3. 통화의 회선 번호입니다.

원본 : 호출자 정보 (C # 및 Visual Basic)


인수 검사를 단순화하려는 경우 다음 폴더에 파일을 만듭니다.

% USERPROFILE % \ Documents \ Visual Studio 2012 \ Code Snippets \ Visual C # \ My Code Snippets

Visual Studio의 여러 버전이 있거나 2012와 다른 버전이있는 경우 다른 버전에 대해 적절하게 이름이 지정된 대체 폴더가 존재합니다.

다음 내용으로 파일 이름을 ThrowIfArgumentNull.snippet으로 지정합니다 . 그것을 사용하려면 tan편집기에 입력 하고 탭을 두 번 누릅니다. 인수 이름 입력에 대한 IntelliSense 지원이 제공되고 문자열 인수가 자동으로 채워집니다. 이 스 니펫은 표준을 생성 ArgumentNullException하지만 프로젝트에서 사용하는 경우 Guard또는 Argument클래스 를 사용하도록 수정할 수 있습니다 .

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <CodeSnippet Format="1.0.0">
    <Header>
      <SnippetTypes>
        <SnippetType>Expansion</SnippetType>
      </SnippetTypes>
      <Title>Throw if argument null</Title>
      <Author>Sam Harwell</Author>
      <Description>Throw an ArgumentNullException if the specified argument is null.</Description>
      <HelpUrl>
      </HelpUrl>
      <Shortcut>tan</Shortcut>
    </Header>
    <Snippet>
      <Declarations>
        <Literal Editable="true">
          <ID>arg</ID>
          <ToolTip>arg</ToolTip>
          <Default>arg</Default>
          <Function>
          </Function>
        </Literal>
        <Literal Editable="false">
          <ID>ArgumentNullException</ID>
          <ToolTip>ArgumentNullException</ToolTip>
          <Default>ArgumentNullException</Default>
          <Function>SimpleTypeName(global::System.ArgumentNullException)</Function>
        </Literal>
      </Declarations>
      <Code Language="csharp"><![CDATA[if ($arg$ == null)
    throw new $ArgumentNullException$("$arg$");$end$]]></Code>
    </Snippet>
  </CodeSnippet>
</CodeSnippets>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

변수에 저장된 메서드의 이름을 가져옵니다.

분류에서Dev

메서드의 정규화 된 이름을 가져옵니다.

분류에서Dev

기본 클래스 또는 확장 Swift의 정적 메서드에서 파생 된 형식의 형식 이름을 가져옵니다.

분류에서Dev

자바 : 변수에 저장된 이름을 가진 메소드를 호출

분류에서Dev

Tkinter는 참조 번호로 객체의 이름, 속성 및 값을 가져옵니다.

분류에서Dev

__call없이 호출 된 메서드 이름 가져 오기

분류에서Dev

IP가 아닌 전화기에 내장 된 지리적 위치 기능을 호출하여 사용자의 현재 위치를 가져옵니다.

분류에서Dev

명시 적 참조없이 메서드에서 확장 메서드 호출

분류에서Dev

Python에서 바인딩 된 메서드 개체의 인스턴스에서 바인딩 된 메서드의 이름을 가져옵니다.

분류에서Dev

Ruby는 기본 라이브러리를 사용하여 메서드 내부에서 호출자 개체의 이름을 가져옵니다.

분류에서Dev

jQuery AJAX 호출이 txt 파일에서 잘못된 값을 가져옵니다.

분류에서Dev

높이가 확장 될 때 flexbox 흐름의 요소를 가져옵니다.

분류에서Dev

가장 오래된 거버넌스 날짜가있는 고유 한 이름의 대통령 목록을 가져옵니다 (이름이 반복되는 경우).

분류에서Dev

Java LinkedList에서 가장 최근에 추가 된 노드에 대한 참조를 가져옵니다.

분류에서Dev

Matlab : ImageMagick의 시스템 호출이 금지 된 매개 변수를 가져옵니다.

분류에서Dev

Aggrid는 테이블에 표시된 열의 이름을 가져옵니다.

분류에서Dev

지정된 폴더 이름을 사용하여 폴더 구조에서 파일 이름을 가져옵니다.

분류에서Dev

Mockito : 캡처 된 객체의 메서드가 호출되었는지 확인

분류에서Dev

CAPL은 생성 된 로그 파일의 이름을 가져옵니다.

분류에서Dev

C의 함수에 전달 된 변수 이름을 가져옵니다.

분류에서Dev

변수에 포함 된 함수의 이름을 가져옵니다.

분류에서Dev

벡터에서 정의 된 확장자를 가진 파일 이름 추출

분류에서Dev

(명명 된) 함수가 호출 된 이름을 조사 할 수 있습니까?

분류에서Dev

구조체에 저장된 참조에서 함수 이름을 가져올 수 있습니까?

분류에서Dev

Chrome 확장-탭에 정의 된 호출 기능 (참조 오류)

분류에서Dev

setAlarm 메서드 중에 호출 된 Alarm BroadcastReceiver의 onReceive ()가 호출됩니다.

분류에서Dev

hover-Three.js에서 OBJLoader를 통해로드 된 객체 모델의 이름을 가져옵니다.

분류에서Dev

재귀 제네릭 인터페이스의 확장 메서드가 호출 될 때 구조체 인스턴스가 박스형으로 표시됩니까?

분류에서Dev

Laravel보기에서 해시 된 이름의 원래 경로와 파일 이름을 가져옵니다.

Related 관련 기사

  1. 1

    변수에 저장된 메서드의 이름을 가져옵니다.

  2. 2

    메서드의 정규화 된 이름을 가져옵니다.

  3. 3

    기본 클래스 또는 확장 Swift의 정적 메서드에서 파생 된 형식의 형식 이름을 가져옵니다.

  4. 4

    자바 : 변수에 저장된 이름을 가진 메소드를 호출

  5. 5

    Tkinter는 참조 번호로 객체의 이름, 속성 및 값을 가져옵니다.

  6. 6

    __call없이 호출 된 메서드 이름 가져 오기

  7. 7

    IP가 아닌 전화기에 내장 된 지리적 위치 기능을 호출하여 사용자의 현재 위치를 가져옵니다.

  8. 8

    명시 적 참조없이 메서드에서 확장 메서드 호출

  9. 9

    Python에서 바인딩 된 메서드 개체의 인스턴스에서 바인딩 된 메서드의 이름을 가져옵니다.

  10. 10

    Ruby는 기본 라이브러리를 사용하여 메서드 내부에서 호출자 개체의 이름을 가져옵니다.

  11. 11

    jQuery AJAX 호출이 txt 파일에서 잘못된 값을 가져옵니다.

  12. 12

    높이가 확장 될 때 flexbox 흐름의 요소를 가져옵니다.

  13. 13

    가장 오래된 거버넌스 날짜가있는 고유 한 이름의 대통령 목록을 가져옵니다 (이름이 반복되는 경우).

  14. 14

    Java LinkedList에서 가장 최근에 추가 된 노드에 대한 참조를 가져옵니다.

  15. 15

    Matlab : ImageMagick의 시스템 호출이 금지 된 매개 변수를 가져옵니다.

  16. 16

    Aggrid는 테이블에 표시된 열의 이름을 가져옵니다.

  17. 17

    지정된 폴더 이름을 사용하여 폴더 구조에서 파일 이름을 가져옵니다.

  18. 18

    Mockito : 캡처 된 객체의 메서드가 호출되었는지 확인

  19. 19

    CAPL은 생성 된 로그 파일의 이름을 가져옵니다.

  20. 20

    C의 함수에 전달 된 변수 이름을 가져옵니다.

  21. 21

    변수에 포함 된 함수의 이름을 가져옵니다.

  22. 22

    벡터에서 정의 된 확장자를 가진 파일 이름 추출

  23. 23

    (명명 된) 함수가 호출 된 이름을 조사 할 수 있습니까?

  24. 24

    구조체에 저장된 참조에서 함수 이름을 가져올 수 있습니까?

  25. 25

    Chrome 확장-탭에 정의 된 호출 기능 (참조 오류)

  26. 26

    setAlarm 메서드 중에 호출 된 Alarm BroadcastReceiver의 onReceive ()가 호출됩니다.

  27. 27

    hover-Three.js에서 OBJLoader를 통해로드 된 객체 모델의 이름을 가져옵니다.

  28. 28

    재귀 제네릭 인터페이스의 확장 메서드가 호출 될 때 구조체 인스턴스가 박스형으로 표시됩니까?

  29. 29

    Laravel보기에서 해시 된 이름의 원래 경로와 파일 이름을 가져옵니다.

뜨겁다태그

보관