Làm cách nào chúng ta có thể tạo getters và setters trong Visual Studio?


226

Theo "tạo", ý tôi là tự động tạo mã cần thiết cho một (các) biến được chọn cụ thể.

Nhưng bất kỳ giải thích rõ ràng hơn hoặc nhận xét về thực hành tốt đều được chào đón.

Câu trả lời:



51

Visual Studio cũng có một tính năng sẽ tạo một Thuộc tính từ một biến riêng.

Nếu bạn nhấp chuột phải vào một biến, trong menu ngữ cảnh bật lên, nhấp vào mục "Tái cấu trúc", sau đó chọn Trường đóng gói ... . Điều này sẽ tạo một thuộc tính getter / setter cho một biến.

Tôi không phải là một fan hâm mộ lớn của kỹ thuật này vì nó hơi khó sử dụng nếu bạn phải tạo ra nhiều getters / setters, và nó đặt tài sản ngay bên dưới trường riêng, điều đó làm tôi khó chịu, vì tôi thường có tất cả các trường riêng của tôi được nhóm lại với nhau và tính năng Visual Studio này phá vỡ định dạng của lớp tôi.


10
Thật không may, tùy chọn này không được cung cấp bởi các phiên bản nhanh của Visual Studio.
Toby

12
cũng có shourtcut - Tôi thích cách này hơn :) - CTRL + R + E
Vukasin

32

Tôi sử dụng Visual Studio 2013 Professional.

  • Đặt con trỏ của bạn tại dòng của một biến thể hiện.

    Nhập mô tả hình ảnh ở đây

  • Nhấn phím kết hợp Ctrl+ R, Ctrl+ Ehoặc nhấp vào nút chuột phải. Chọn menu ngữ cảnh RefactorTrường đóng gói ... , rồi nhấn OK.

    Nhập mô tả hình ảnh ở đây

  • Trong Xem trước Thay đổi Tham chiếu - Hộp thoại Đóng gói Trường , nhấn nút Apply.

    Nhập mô tả hình ảnh ở đây

  • Đây là kết quả:

    Nhập mô tả hình ảnh ở đây



Bạn cũng đặt con trỏ để chọn một thuộc tính . Sử dụng menu Chỉnh sửaRefactorTrường đóng gói ...


30

Bằng cách tạo, bạn có nghĩa là tự động tạo? Nếu đó không phải là ý bạn:

Visual Studio 2008 có cách triển khai dễ nhất cho việc này:

public PropertyType PropertyName { get; set; }

Trong nền, điều này tạo ra một biến đối tượng ngụ ý mà tài sản của bạn được lưu trữ và truy xuất.

Tuy nhiên, nếu bạn muốn đưa thêm logic vào Thuộc tính của mình, bạn sẽ phải có một biến đối tượng cho nó:

private PropertyType _property;

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

Các phiên bản trước của Visual Studio luôn sử dụng phương pháp thủ công này.


Không phải tiêu chuẩn trong C # là dấu gạch ngang thấp hơn sau tên thành viên property_thay vì trước đó _propertysao?
Julen

2
@Julen - Tôi đã luôn thấy quy ước _property.
Nathan DeWitt

27

Bạn cũng có thể sử dụng "propfull" và đánh TABhai lần.

Biến và thuộc tính với get và set sẽ được tạo.


đây là thứ hữu ích hơn và tôi luôn quên nó
Dave Alperovich

Tôi đang thực hiện tuần tự hóa XML và sinh ra hàng tấn tài sản trên toàn chương trình. + 100 triệu đô la upvote nếu tôi có thể. Cảm ơn! Chỉnh sửa- NGAY CẢ TỐT HƠN, tập lệnh autohotkey + ^ this = năng suất hơn 90000!
Eon

Video minh họa việc sử dụng đoạn trích 'propfull' (trong số những thứ khác), trong 4 phút 11 giây.
Peter Mortensen

6

Nếu bạn đang sử dụng Visual Studio 2005 trở lên, bạn có thể tạo một setter / getter thật nhanh bằng cách sử dụng lệnh chèn đoạn trích.

Nhấp chuột phải vào mã của bạn, nhấp vào Chèn Snippet ( Ctrl+ K, X) và sau đó chọn "prop" từ danh sách.


4

Nếu bạn đang sử dụng ReSharper, hãy vào menu ReSharper → Tạo ...

(Hoặc nhấn Alt+ Insbên trong lớp xung quanh) và bạn sẽ nhận được tất cả các tùy chọn để tạo getters và / hoặc setters bạn có thể nghĩ đến :-)


3

Sử dụng propfulltừ khóa.

Nó sẽ tạo ra một tài sản và một biến.

Nhập từ khóa propfulltrong trình chỉnh sửa, theo sau là hai TABs. Nó sẽ tạo mã như:

private data_type var_name;

public data_type var_name1{ get;set;}

Video minh họa việc sử dụng đoạn trích 'propfull' (trong số những thứ khác), trong 4 phút 11 giây.


2
vui lòng cung cấp thêm thông tin về câu trả lời của bạn, câu trả lời với mô tả ngắn không ổn cho khách truy cập tiếp theo ...
Kiyarash

gõ từ khóa propfull trong trình chỉnh sửa, nó sẽ tạo mã như private data_type var_name; dữ liệu công khai_type var_name1 {get; set;}
avinash kadu

Bạn có thể thêm một tài liệu tham khảo cho "propfull" (bằng cách chỉnh sửa câu trả lời của bạn , không phải ở đây trong các bình luận)?
Peter Mortensen

3

Tôi đã tạo đoạn trích của riêng tôi mà chỉ thêm {get; set;}. Tôi đã làm nó chỉ vì tôi thấy propTabtrở nên vụng về.

<?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>

Với điều này, bạn nhập PropType và PropName theo cách thủ công, sau đó nhập getTabvà nó sẽ thêm bộ get. Không có gì kỳ diệu, nhưng vì tôi có xu hướng gõ công cụ sửa đổi truy cập của mình trước tiên, tôi cũng có thể hoàn thành tên và loại.


2

Trong Visual Studio Community Edition 2015, bạn có thể chọn tất cả các trường bạn muốn và sau đó nhấn Ctrl+. để tự động tạo các thuộc tính.

Bạn phải chọn nếu bạn muốn sử dụng tài sản thay vì trường hoặc không.


1

Ngoài đoạn mã 'prop' và thuộc tính tự động, còn có tùy chọn cấu trúc lại để cho phép bạn chọn một trường hiện có và hiển thị nó thông qua một thuộc tính ( nhấp chuột phải vào trường → RefactorTrường đóng gói ... ).

Ngoài ra, nếu bạn không thích triển khai 'prop', bạn có thể tạo các đoạn mã của riêng mình. Ngoài ra, một công cụ tái cấu trúc của bên thứ ba như ReSharper sẽ cung cấp cho bạn nhiều tính năng hơn nữa và giúp dễ dàng tạo các đoạn nâng cao hơn. Tôi muốn giới thiệu ReSharper nếu bạn có đủ khả năng.


Liên kết đầu tiên chuyển hướng đến tài liệu đã nghỉ hưu của Visual Studio 2005 . Mà một trong mười nó đã đề cập đến? Có lẽ, đó là một mô tả về cách sử dụng đoạn trích trong Visual Studio.
Peter Mortensen

1

Trong studio hình ảnh 2019, chọn thuộc tính của bạn như thế này:

nhập mô tả hình ảnh ở đây

Sau đó nhấn Ctrl+r Sau đó nhấnCtrl+e

Một hộp thoại sẽ xuất hiện hiển thị cho bạn bản xem trước của những thay đổi sẽ được thực hiện đối với mã của bạn. Nếu mọi thứ có vẻ tốt (mà hầu hết sẽ như vậy), hãy nhấn OK.


0

Tôi không cài đặt Visual Studio trên máy của mình nữa (và tôi đang sử dụng Linux), nhưng tôi nhớ rằng có một trình hướng dẫn ẩn ở đâu đó bên trong một trong các menu đã cấp quyền truy cập cho trình tạo lớp.

Với trình hướng dẫn này, bạn có thể xác định tất cả các chi tiết của lớp, bao gồm các phương thức và thuộc tính. Nếu tôi nhớ rõ, có một tùy chọn thông qua đó bạn có thể yêu cầu Visual Studio tự động tạo setters và getters cho bạn.

Tôi biết nó khá mơ hồ, nhưng hãy kiểm tra và bạn có thể tìm thấy nó.


0

Nhập mô tả hình ảnh ở đây

Thay mặt công cụ Visual Studio, chúng tôi có thể dễ dàng tạo các thuộc tính C # bằng cách sử dụng công cụ trực tuyến có tên là trình tạo thuộc tính C #.


3
tính năng vô dụng
SeReGa

0

Trước tiên, hãy mở rộng, chỉ cần nhấn ( Ctrl+ Shift+ X) và cài đặt getter setter ....

Sau này, chỉ cần chọn biến của bạn và nhấp chuột phải. Chuyển đến bảng lệnh ...

Và gõ getter ... Nó sẽ gợi ý tạo các phương thức get và set. Bấm vào đây ...


1
Bạn có ý nghĩa gì bởi "Lần đầu tiên được gia hạn" ?
Peter Mortensen

Trong bối cảnh nào nên nhấn Ctrl + Shift + X?
Peter Mortensen

-4

Bạn chỉ cần nhấn Alt+ Instrong Android Studio.

Sau khi khai báo các biến, bạn sẽ nhận được các getters và setters trong mã được tạo.


Không ai hỏi về studio android
warzone_fz 9/12/18

Câu hỏi là "Làm thế nào chúng ta có thể tạo getters và setters trong Visual Studio?" . Visual Studio không giống với Android Studio .
Peter Mortensen
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.