CA2267: Mengutip spasi kosong dalam nilai direktif program berbasis file

Harta benda Nilai
Identifikasi Aturan CA2267
Title Kutip spasi kosong dalam nilai direktif program berbasis file
Kategori Penggunaan
Perbaikan bersifat merusak atau tidak merusak Tidak terputus
Diaktifkan secara default di .NET 11 Sebagai peringatan
Bahasa yang berlaku C#

Cause

Nilai direktif program #: berbasis file berisi karakter spasi tanpa tanda kutip.

Deskripsi aturan

Sebelum penggunaan tanda kutip didukung, karakter spasi dalam nilai arahan program berbasis file #: dianggap harfiah. Formulir itu masih berfungsi tetapi tidak digunakan lagi. Bungkus nilai yang berisi spasi kosong dalam tanda kutip ganda (") sehingga diurai secara tidak ambigu.

Aturan ini berlaku untuk arahan #:sdk, , #:package#:property, #:project#:ref, #:include, dan #:exclude . Hal ini hanya dilaporkan ketika nilai tersebut memiliki padanan berpetik yang tidak ambigu dan mempertahankan semantik, sehingga penerapan perbaikan tidak pernah mengubah makna direktif.

Untuk informasi selengkapnya tentang aplikasi berbasis file dan arahannya, lihat Aplikasi berbasis file.

Cara memperbaiki pelanggaran

Tambahkan tanda kutip ganda di sekitar nilai semantik sehingga spasi putih diurai secara tidak ambigu. Untuk formulir gabungan, seperti penetapan properti atau nama dan versi paket, kutip bagian setelah pemisah. Pertahankan spasi yang memang disengaja di sekitar pemisah di luar tanda kutip.

Di Visual Studio, Anda juga dapat menggunakan perbaikan kode Tambahkan tanda kutip di sekitar nilai direktif.

Example

Cuplikan kode berikut menunjukkan pelanggaran CA2267.

#:property Description=Hello World

Cuplikan kode berikut memperbaiki pelanggaran.

#:property Description="Hello World"

Perbaikan kode mempertahankan spasi kosong di sekitar pemisah dan antara jenis direktif dan nilainya. Misalnya, direktif berikut menyelaraskan nama dan pemisah:

#:property Prop  = Value
#:package  First @ 1.0

Perbaikan kode menambahkan tanda kutip tanpa mengubah perataan tersebut:

#:property Prop  = "Value"
#:package  First @ "1.0"

Kapan harus menekan peringatan

Tidak disarankan untuk menekan peringatan ini. Formulir yang dikutip adalah cara yang didukung untuk menyertakan spasi kosong dalam nilai direktif, dan formulir yang tidak dikutip tidak digunakan lagi.

Menyembunyikan peringatan

Untuk aplikasi berbasis file, abaikan satu pelanggaran dengan menambahkan direktif #:property ke file titik masuk.

#:property NoWarn=$(NoWarn);CA2267

Untuk menonaktifkan aturan untuk file, folder, atau proyek, atur tingkat keparahannya ke none dalam file konfigurasi.

[*.cs]
dotnet_diagnostic.CA2267.severity = none

Untuk informasi selengkapnya, lihat Cara menyembunyikan peringatan analisis kode.

Baca juga