Bagaimana kita bisa menghasilkan getter dan setter di Visual Studio?

226

Dengan "menghasilkan", maksud saya pembuatan kode secara otomatis yang diperlukan untuk variabel (set) tertentu yang dipilih.

Tetapi setiap penjelasan atau komentar yang lebih eksplisit tentang praktik yang baik disambut baik.

Paul
sumber

Jawaban:

297

Daripada menggunakan Ctrl+ K, XAnda juga bisa mengetik propdan kemudian menekan Tabdua kali.

Orion Edwards
sumber
70
Dan jangan lupa "propg" + tab yang menghasilkan hal yang sama, tetapi dengan setter pribadi.
Andrew M
Lihat msdn.microsoft.com/en-us/library/z41h7fat.aspx untuk cuplikan kode yang lebih bermanfaat dalam Visual C #
Titus
51

Visual Studio juga memiliki fitur yang akan menghasilkan Properti dari variabel pribadi.

Jika Anda klik kanan pada variabel, dalam menu konteks yang muncul, klik pada "Refactor" item, dan kemudian pilih Encapsulate Lapangan ... . Ini akan membuat properti pengambil / penyetel untuk variabel.

Saya tidak terlalu suka teknik ini karena agak canggung untuk digunakan jika Anda harus membuat banyak getter / setter, dan menempatkan properti langsung di bawah bidang pribadi, yang mengganggu saya, karena saya biasanya memiliki semua bidang pribadi saya dikelompokkan bersama, dan fitur Visual Studio ini memecah format kelas saya.

Dan Herbert
sumber
10
Sayangnya, opsi ini tidak diberikan oleh edisi ekspres Visual Studio.
Toby
12
ada shourtcut juga - Saya lebih suka cara ini :) - CTRL + R + E
Vukasin
32

Saya menggunakan Visual Studio 2013 Professional.

  • Tempatkan kursor Anda di baris variabel instan.

    Masukkan deskripsi gambar di sini

  • Tekan tombol kombinasi Ctrl+ R, Ctrl+ E, atau klik tombol mouse kanan. Pilih menu konteks RefactorEncapsulate Field ... , dan kemudian tekan OK.

    Masukkan deskripsi gambar di sini

  • Di Pratinjau Referensi Referensi - Dialog Bidang Enkapsulasi , tekan tombol Apply.

    Masukkan deskripsi gambar di sini

  • Ini hasilnya:

    Masukkan deskripsi gambar di sini



Anda juga menempatkan kursor untuk memilih properti . Gunakan menu EditRefactorEnkapsulasi Bidang ...

Apakah Nhu Vy
sumber
30

Dengan menghasilkan, maksud Anda menghasilkan otomatis? Jika bukan itu yang Anda maksud:

Visual Studio 2008 memiliki implementasi termudah untuk ini:

public PropertyType PropertyName { get; set; }

Di latar belakang, ini menciptakan variabel instance tersirat yang properti Anda disimpan dan diambil.

Namun jika Anda ingin memasukkan lebih banyak logika ke dalam Properti Anda, Anda harus memiliki variabel instan untuknya:

private PropertyType _property;

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

Versi sebelumnya dari Visual Studio juga selalu menggunakan metode ini.

Jon Limjap
sumber
Bukankah standar dalam C # adalah tanda hubung lebih rendah setelah nama anggota dan property_bukan sebelumnya _property?
Julen
2
@ Julien - Saya selalu melihat konvensi _property.
Nathan DeWitt
27

Anda juga dapat menggunakan "propfull" dan menekan TABdua kali.

Variabel dan properti dengan get and set akan dihasilkan.

Chirag Khatsuriya
sumber
ini yang lebih bermanfaat dan saya selalu lupa
Dave Alperovich
Saya melakukan serialisasi XML dan memunculkan banyak properti di seluruh acara. + 100septillion upvotes jika saya bisa. Terima kasih! Edit- BAHKAN LEBIH BAIK, skrip autohotkey + ^ this = produktivitas lebih dari 90000!
Eon
Video yang menunjukkan penggunaan 'propfull' cuplikan (antara lain), pada 4 menit 11 detik.
Peter Mortensen
6

Jika Anda menggunakan Visual Studio 2005 dan lebih tinggi, Anda bisa membuat setter / getter sangat cepat menggunakan perintah snippet insert.

Klik kanan pada kode Anda, klik Sisipkan Cuplikan ( Ctrl+ K, X), dan kemudian pilih "prop" dari daftar.

omar
sumber
4

Jika Anda menggunakan ReSharper, buka menu ReSharper → KodeHasilkan ...

(Atau tekan Alt+ Insdi dalam kelas sekitarnya), dan Anda akan mendapatkan semua opsi untuk menghasilkan getter dan / atau setter yang dapat Anda pikirkan :-)

Oliver
sumber
3

Gunakan propfullkata kunci.

Ini akan menghasilkan properti dan variabel.

Ketikkan kata kunci propfulldi editor, diikuti oleh dua TABs. Ini akan menghasilkan kode seperti:

private data_type var_name;

public data_type var_name1{ get;set;}

Video yang menunjukkan penggunaan 'propfull' cuplikan (antara lain), pada 4 menit 11 detik.

avinash kadu
sumber
2
tolong berikan informasi lebih lanjut tentang jawaban Anda, jawaban dengan deskripsi singkat tidak oke untuk pengunjung berikutnya ...
Kiyarash
ketik kata kunci propfull di editor maka akan menghasilkan kode seperti private data_type var_name; public data_type var_name1 {get; set;}
avinash kadu
Bisakah Anda menambahkan referensi untuk "propfull" (dengan mengedit jawaban Anda , bukan di sini di komentar)?
Peter Mortensen
3

Saya membuat cuplikan saya sendiri yang hanya menambahkan {get; set;}. Saya membuatnya hanya karena saya menemukan propTabmenjadi kikuk.

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

Dengan ini, Anda mengetik PropType dan PropName Anda secara manual, lalu ketik getTab, dan itu akan menambah get set. Tidak ada yang ajaib, tetapi karena saya cenderung mengetik pengubah akses saya terlebih dahulu, saya mungkin juga akan menyelesaikan nama dan jenisnya.

bsayegh
sumber
2

Dalam Visual Studio Community Edition 2015 Anda dapat memilih semua bidang yang Anda inginkan dan kemudian tekan Ctrl+ .untuk secara otomatis menghasilkan properti.

Anda harus memilih apakah Anda ingin menggunakan properti alih-alih bidang atau tidak.

Tito Leiva
sumber
1

Selain potongan 'prop' dan properti otomatis, ada opsi refactor untuk membiarkan Anda memilih bidang yang ada dan memaparkannya melalui properti ( klik kanan pada bidang → RefactorBidang Enkapsulasi ... ).

Juga, jika Anda tidak menyukai implementasi 'prop', Anda dapat membuat snippet Anda sendiri. Selain itu, alat refactoring pihak ketiga seperti ReSharper akan memberi Anda lebih banyak fitur dan membuatnya lebih mudah untuk membuat cuplikan yang lebih canggih. Saya akan merekomendasikan ReSharper jika Anda mampu membelinya.

Daniel
sumber
Tautan pertama akan dialihkan ke dokumentasi Visual Studio 2005 Retired . Yang mana dari sepuluh yang dimaksud ? Agaknya, ini adalah deskripsi tentang cara menggunakan cuplikan di Visual Studio.
Peter Mortensen
1

Di studio visual 2019, pilih properti Anda seperti ini:

masukkan deskripsi gambar di sini

Lalu tekan Ctrl+r Kemudian tekanCtrl+e

Dialog akan muncul yang menunjukkan kepada Anda pratinjau perubahan yang akan dilakukan terhadap kode Anda. Jika semuanya terlihat baik (yang sebagian besar akan terjadi), tekan OK.

Adil Malik
sumber
0

Saya tidak menginstal Visual Studio di komputer saya lagi (dan saya menggunakan Linux), tetapi saya ingat bahwa ada penyihir yang tersembunyi di suatu tempat di dalam salah satu menu yang memberikan akses ke pembuat kelas.

Dengan wizard ini, Anda dapat mendefinisikan semua detail kelas Anda, termasuk metode dan atribut. Jika saya ingat betul, ada opsi di mana Anda bisa meminta Visual Studio untuk membuat setter dan getter secara otomatis untuk Anda.

Saya tahu ini cukup samar, tapi coba lihat dan Anda mungkin menemukannya.

Mario Marinato
sumber
0

Masukkan deskripsi gambar di sini

Atas nama alat Visual Studio, kita dapat dengan mudah menghasilkan properti C # menggunakan alat online yang disebut generator properti C #.

DotNetLover
sumber
3
fitur yang tidak berguna
SeReGa
0

Pertama dapatkan Extension cukup tekan ( Ctrl+ Shift+ X) dan instal getter setter ....

Setelah ini, cukup pilih variabel Anda dan klik kanan. Buka palet perintah ...

Dan ketik pengambil ... Ini akan menyarankan menghasilkan dan mengatur metode. Klik ini ...

sejpalsinh jadeja
sumber
1
Apa yang Anda maksud dengan "Dapatkan Ekstensi Pertama" ?
Peter Mortensen
Dalam konteks apa Ctrl + Shift + X harus ditekan?
Peter Mortensen
-4

Anda cukup menekan Alt+ Insdi Android Studio.

Setelah mendeklarasikan variabel, Anda akan mendapatkan getter dan setter dalam kode yang dihasilkan.

A_R Rehman
sumber
Tidak ada yang bertanya tentang android studio
warzone_fz
Pertanyaannya adalah "Bagaimana kita bisa menghasilkan getter dan setter di Visual Studio?" . Visual Studio tidak sama dengan Android Studio .
Peter Mortensen