Dengan kode saya, saya mendapatkan 3 pesan yang semuanya mengatakan inisialisasi objek dapat disederhanakan
dan dalam kehausan saya yang terus berkembang akan pengetahuan (dan OCD saya) saya ingin "memperbaiki &" kode saya sehingga pesan-pesan ini tidak muncul. Saya tahu saya bisa mengaturnya agar pesan-pesan ini tidak muncul tetapi saya masih akan tetap berpikir bahwa pesan-pesan ini ada di latar belakang yang tidak cocok dengan saya. Jika ada yang bisa menunjukkan bagaimana cara "menyederhanakan inisialisasi &" itu akan sangat bagus sehingga saya dapat meningkatkan keterampilan saya. Jika diperlukan lebih banyak kode, beritahu saya dan saya bisa menambahkannya.
Pertama:
TreeNode node = new TreeNode(drive.Substring(0, 1), driveImage, driveImage);//issue on this line
node.Tag = drive;
2nd:
DirectoryInfo di = new DirectoryInfo(dir);
TreeNode node = new TreeNode(di.Name, 0, 1); //this line
Saya menduga dengan treenodes karena saya telah memberi mereka nama yang sama tetapi saya mencoba mengubah nama tetapi tidak ada bedanya.
3rd:
OleDbCommand select = new OleDbCommand();//this line
select.Connection = cnDTC;
select.CommandText = string.Format("SELECT MAX(VERSION_NO) AS MAX_VERSION FROM ({0})", strSQL2);
Sebelum:
TreeNode node = new TreeNode(drive.Substring(0, 1), driveImage, driveImage);
node.Tag = drive;
Setelah:
var node = new TreeNode(drive.Substring(0, 1), driveImage, driveImage) {
Tag = drive
};
Sebelum:
DirectoryInfo di = new DirectoryInfo(dir);
TreeNode node = new TreeNode(di.Name, 0, 1); //this line
Setelah:
var node = new TreeNode((new DirectoryInfo(dir)).Name, 0, 1);
Sebelum:
OleDbCommand select = new OleDbCommand();//this line
select.Connection = cnDTC;
select.CommandText = string.Format("SELECT MAX(VERSION_NO) AS MAX_VERSION FROM ({0})",
strSQL2);
Setelah:
var select = new OleDbCommand(
String.Format("SELECT MAX(VERSION_NO) AS MAX_VERSION FROM ({0})", strSQL2),
cnDTC);
Ketiga (dengan interpolasi string):
var select = new OleDbCommand($"SELECT MAX(VERSION_NO) AS MAX_VERSION FROM ({strSQL2})",
cnDTC);
BTW: setiap kali pesan semacam ini muncul, coba letakkan kursor pada baris tersebut dan tekan Ctrl+. (atau klik bola lampu yang muncul) - yang akan membuka "quick-Fix / quick-refactor"
Baca lebih lanjut tentang var (ini benar-benar tidak jahat 😉) dan beberapa dokumentasi lebih lanjut tentang Object and Collection Initializers
Saya memiliki masalah serupa dengan kode ini:
Customer oCust = new Customer();
oCust.Address = txtAddress.Text;
oCust.City = txtCity.Text;
oCust.State = txtState.Text;
Dan menyelesaikannya dengan kode ini:
Customer oCust = new Customer()
{
Address = txtAddress.Text,
City = txtCity.Text,
State = txtState.Text
};
Sooo...untuk mematikan pesan peringatan (IDE0017) (di VS 2017/2019):
Klik tab Tools Tab. Kemudian turun ke Options...
Kemudian | TextEditor | C# | CodeStyle | General |
Di bawah Preferensi Ekspresoin ubah Prefer Object Initializer menjadi Tidak.
Atau Anda bisa membiarkan Preferensi sebagai Yes dan mengubah Severity dari Warning ke Suggestion. Sekarang hanya akan muncul sebagai pesan di Daftar Kesalahan.
Kompiler ingin Anda menggunakan sintaksis berikut:
var select = new OleDbCommand
{
Connection = cnDTC,
CommandText = string.Format("SELECT MAX(VERSION_NO) AS MAX_VERSION FROM ({0})", strSQL2)
};
Ini untuk kasus ke-3 Anda.