Visual Studio에서 게터와 세터를 어떻게 생성 할 수 있습니까?


226

"생성"이란 특정 (선택된) 변수에 필요한 코드의 자동 생성을 의미합니다.

그러나 모범 사례에 대한 더 명확한 설명이나 의견은 환영합니다.

답변:



51

Visual Studio에는 개인 변수에서 속성을 생성하는 기능도 있습니다.

변수를 마우스 오른쪽 버튼으로 클릭하면 나타나는 컨텍스트 메뉴 에서 "리 팩터"항목을 클릭 한 다음 필드 캡슐화 ... 를 선택하십시오 . 변수에 대한 getter / setter 속성이 생성됩니다.

게터 / 세터를 많이 만들어야하는 경우 사용하기가 약간 어색하기 때문에이 기술의 팬은 그리 크지 않으며 개인 필드 바로 아래에 속성을 배치합니다. 내 개인 필드를 모두 그룹화하면이 Visual Studio 기능이 클래스의 서식을 손상시킵니다.


10
불행히도 Visual Studio의 Express Edition에서는이 옵션을 제공하지 않습니다.
Toby

12
shourtcut도있다-나는이 방법을 좋아한다 :)-CTRL + R + E
Vukasin

32

Visual Studio 2013 Professional을 사용합니다.

  • 인스턴스 변수의 행에 커서를 놓습니다.

    여기에 이미지 설명을 입력하십시오

  • 결합 키 Ctrl+ R, Ctrl+ E를 누르거나 마우스 오른쪽 버튼을 클릭하십시오. 상황에 맞는 메뉴 리 팩터필드 캡슐화 ... 를 선택한 다음를 누릅니다 OK.

    여기에 이미지 설명을 입력하십시오

  • 에서 캡슐화 필드 - 미리보기 참조 변경 대화 상자에서 버튼을 누르면 Apply.

    여기에 이미지 설명을 입력하십시오

  • 결과는 다음과 같습니다.

    여기에 이미지 설명을 입력하십시오



또한 속성을 선택하기위한 커서를 놓습니다 . 메뉴 편집리팩터링필드 캡슐화 ...를 사용하십시오 .

  • 기타 정보:

    C # 3.0 (2007 년 11 월 19 일) 이후 자동 구현 된 속성을 사용할 수 있습니다 (단순한 구문 설탕 임).

    private int productID;
    
    public int ProductID
    {
        get { return productID; }
        set { productID = value; }
    }

    된다

    public int ProductID { get; set; }

30

생성이란 자동 생성을 의미합니까? 그것이 당신이 의미하는 것이 아닌 경우 :

Visual Studio 2008은 가장 쉬운 구현입니다.

public PropertyType PropertyName { get; set; }

백그라운드에서 이것은 속성이 저장되고 검색 될 암시 적 인스턴스 변수를 만듭니다.

그러나 속성에 더 많은 논리를 넣으려면 인스턴스 변수가 있어야합니다.

private PropertyType _property;

public PropertyType PropertyName
{
    get
    {
        //logic here 
        return _property;
    }
    set
    {
        //logic here
        _property = value;
    }
 }

이전 버전의 Visual Studio에서는 항상이 긴 방법도 사용했습니다.


C #의 표준 property_이 이전이 아닌 멤버 이름 뒤의 대시가 _property아닙니까?
Julen

2
@Julen-저는 항상 _property 규칙을 보았습니다.
Nathan DeWitt

27

"propfull"을 사용하여 TAB두 번 칠 수도 있습니다 .

get 및 set 변수와 속성이 생성됩니다.


이것은 더 유용한 것이고 항상 잊습니다
Dave Alperovich

XML 직렬화를 수행하고 있으며 쇼 전체에서 수많은 속성을 생성합니다. 내가 할 수 있다면 + 100septillion upvotes. 감사합니다! 편집-심지어 더 나은 자동 핫키 스크립트 + ^ this = 90000 이상의 생산성!
Eon


6

Visual Studio 2005 이상을 사용하는 경우 insert snippet 명령을 사용하여 setter / getter를 빠르게 만들 수 있습니다.

코드를 마우스 오른쪽 버튼으로 클릭하고 스 니펫 삽입 ( Ctrl+ K, X)을 클릭 한 다음 목록에서 "prop"를 선택하십시오.


4

ReSharper를 사용하는 경우 ReSharper 메뉴 → 코드생성 ...으로 이동하십시오.

(또는 주변 클래스 내부에서 Alt+를 누르십시오 Ins), 당신은 당신이 생각할 수있는 게터 및 / 또는 세터를 생성하기위한 모든 옵션을 얻습니다 :-)


3

propfull키워드를 사용하십시오 .

속성과 변수를 생성합니다.

propfull편집기에서 키워드 를 입력 한 다음 2를 입력하십시오 TAB. 다음과 같은 코드를 생성합니다.

private data_type var_name;

public data_type var_name1{ get;set;}

4 분 11 초에서 스 니펫 '프로 풀' (다른 것들 중에서) 사용을 시연하는 비디오


2
답변에 대한 자세한 정보를 제공해주십시오. 간단한 설명이있는 답변은 다음 방문객에게는 적합하지 않습니다 ...
Kiyarash

편집기에서 키워드 fullfull을 입력하면 private data_type var_name과 같은 코드가 생성됩니다. 공개 data_type var_name1 {get; set;}
avinash kadu

"프로 풀"에 대한 참조를 추가 할 수 있습니까 ( 주석이 아닌 답변편집하여 )?
Peter Mortensen

3

난 내 자신의 조각 만든 에만 추가를 {get; set;}. propTab칙칙한 것을 발견했기 때문에 만들었습니다 .

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets
    xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
    <CodeSnippet Format="1.0.0">
        <Header>
            <Title>get set</Title>
            <Shortcut>get</Shortcut>
        </Header>
        <Snippet>
            <Code Language="CSharp">
                <![CDATA[{get; set;}]]>
            </Code>
        </Snippet>
    </CodeSnippet>
</CodeSnippets>

이를 통해 PropType 및 PropName을 수동으로 입력 한 다음 get→ 를 입력 Tab하면 get set이 추가됩니다. 그것은 마법적인 것은 아니지만 어쨌든 액세스 수정자를 먼저 입력하는 경향이 있으므로 이름과 유형을 마무리 할 수도 있습니다.


2

Visual Studio Community Edition 2015에서는 원하는 모든 필드를 선택한 다음 Ctrl+ .를 눌러 속성을 자동으로 생성 할 수 있습니다.

필드 대신 속성을 사용할지 여부를 선택해야합니다.


1

'prop'스 니펫 및 자동 특성 외에도 기존 필드를 선택하고 특성을 통해 필드를 표시 할 수있는 리 팩터 옵션이 있습니다 ( 필드 → 리 팩터필드 캡슐화 ...를 마우스 오른쪽 단추로 클릭하십시오 ).

또한 'prop'구현이 마음에 들지 않으면 직접 스 니펫을 만들 수 있습니다. 또한 ReSharper 와 같은 타사 리팩토링 도구 는 더 많은 기능을 제공하고보다 고급 스 니펫을보다 쉽게 ​​생성 할 수 있습니다. 여유가 있다면 ReSharper를 추천합니다.


첫 번째 링크는 Visual Studio 2005 Retired documentation으로 리디렉션됩니다 . 열 개 중 어느 것을 언급 했습니까? 아마도 Visual Studio에서 스 니펫을 사용하는 방법에 대한 설명 일 것입니다.
Peter Mortensen

1

Visual Studio 2019에서 다음과 같이 속성을 선택하십시오.

여기에 이미지 설명을 입력하십시오

그런 Ctrl+r 다음 누릅니다Ctrl+e

코드에서 수행 될 변경 사항의 미리보기를 보여주는 대화 상자가 나타납니다. 모든 것이 좋아 보이면 (대부분의 경우)를 누릅니다 OK.


0

더 이상 Visual Studio가 내 컴퓨터에 설치되어 있지 않고 Linux를 사용하고 있지만 메뉴 중 하나에 클래스 작성기에 액세스 할 수있는 마법사가 숨겨져 있음을 기억합니다.

이 마법사를 사용하면 메소드 및 속성을 포함한 모든 클래스의 세부 사항을 정의 할 수 있습니다. 기억이 나면 Visual Studio에 setter 및 getter를 자동으로 만들도록 요청할 수있는 옵션이 있습니다.

꽤 모호하다는 것을 알고 있지만 확인하면 찾을 수 있습니다.



0

먼저 Extension을 얻으려면 ( Ctrl+ Shift+ X)를 누르고 getter setter ...를 설치하십시오.

그런 다음 변수를 선택하고 마우스 오른쪽 버튼을 클릭하십시오. 명령 팔레트로 이동 ...

그리고 getter ...를 입력하십시오. get 및 set 메소드 생성을 제안합니다. 이것을 클릭하십시오 ...


1
"First get Extension" 은 무엇을 의미 합니까?
Peter Mortensen

어떤 상황에서 Ctrl + Shift + X를 눌러야합니까?
Peter Mortensen

-4

Android Studio에서 Alt+ Ins를 누르면 됩니다.

변수를 선언하면 생성 된 코드에 게터와 세터가 표시됩니다.


아무도 안드로이드 스튜디오에 대해 물었다
warzone_fz

문제는 "Visual Studio에서 게터와 세터를 어떻게 생성 할 수 있습니까?"입니다. . Visual StudioAndroid Studio 와 다릅니다 .
Peter Mortensen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.