Saya sedang melihat Visual Studio 2017 mendatang .
Di bawah bagian berjudul Boosted Productivity ada gambar Visual Studio yang digunakan untuk mengganti semua kejadian var dengan tipe eksplisit.
Kode tersebut ternyata memiliki beberapa masalah yang diidentifikasi oleh Visual Studio sebagai 'perlu diperbaiki'.
Saya ingin memeriksa kembali pemahaman saya tentang penggunaan var di C # jadi saya membaca sebuah artikel dari 2011 oleh Eric Lippert yang berjudul Uses dan penyalahgunaan pengetikan implisit .
Eric berkata:
- Gunakan var ketika Anda harus; ketika Anda menggunakan jenis anonim.
- Gunakan var ketika jenis deklarasi jelas dari penginisialisasi, terutama jika itu adalah objek penciptaan. Ini menghilangkan redundansi.
- Pertimbangkan untuk menggunakan var jika kode menekankan "tujuan bisnis" semantik dari variabel dan meremehkan detail "mekanis" dari penyimpanannya.
- Gunakan tipe eksplisit jika hal ini diperlukan agar kode dipahami dan dipelihara dengan benar.
- Gunakan nama variabel deskriptif terlepas dari apakah Anda menggunakan "var". Nama variabel harus mewakili semantik variabel, bukan detail penyimpanannya; “DecimalRate” buruk; “InterestRate” bagus.
Saya pikir sebagian besar penggunaan var dalam kode ini mungkin ok. Saya pikir akan baik-baik saja untuk tidak menggunakan var untuk bit yang bertuliskan ...
var tweetReady = workouts [ ... ]
... karena mungkin itu bukan 100% langsung apa jenisnya tetapi bahkan kemudian saya tahu dengan cepat bahwa itu adalah boolean
.
Penggunaan var untuk bagian ini ...
var listOfTweets = new List<string>();
... tampak bagi saya persis seperti penggunaan var yang baik karena saya pikir itu berlebihan untuk melakukan hal berikut:
List<string> listOfTweets = new List<string>();
Meskipun berdasarkan apa yang dikatakan Eric, variabel tersebut mungkin seharusnya berupa tweet daripada listOfTweets .
Apa yang menjadi alasan untuk mengubah semua var
penggunaan di sini? Apakah ada yang salah dengan kode ini yang saya lewatkan?
var
sini baik-baik saja. Anda mungkin dapat mengubahnya - tetapi meskipun begitu saya pikir itu tidak benar-benar diperlukan. Mengapa mengubahnya semua menjadi tipe eksplisit?
vars
telah ditandai dengan cara yang sama; dengan tanda silang peringatan yang sama di sebelah mereka dan garis bawah merah. Agaknya Visual Studio ingin memperbaikinya dengan cara yang sama. Kecuali saya salah.