CA2267: Szóköz idézőjelek között a fájlalapú program irányelvértékeiben

Property Value
Szabályazonosító CA2267
Title Szóközt tartalmazó értékek idézőjelezése fájlalapú programdirektívákban
kategória Usage
A javítás törést okoz vagy nem okoz törést nem-törhető
Alapértelmezés szerint engedélyezve a .NET 11-ben Figyelmeztetésként
Alkalmazandó nyelvek C#

A probléma oka

A fájlalapú programdirektíva #: értéke idézőjelek nélküli szóközt tartalmaz.

Szabály leírása

Mielőtt támogatottá vált az idézőjelek használata, a fájlalapú program #: irányelvének értékében az üres karaktereket szó szerint értelmezték. Ez az űrlap továbbra is működik, de elavult. A szóközt tartalmazó értékeket tegye dupla idézőjelek közé ("), hogy egyértelműen értelmezhetők legyenek.

Ez a szabály a #:sdk, #:property, , #:project#:package, #:ref, #:includeés #:exclude irányelvekre vonatkozik. Csak akkor jelzi a rendszer, ha az értéknek van egy egyértelmű, a jelentést megőrző idézőjeles megfelelője, így a javítás alkalmazása soha nem változtatja meg a direktíva jelentését.

A fájlalapú alkalmazásokról és azok irányelveiről további információt a Fájlalapú alkalmazások című témakörben talál.

Szabálysértések kijavítása

Adjon hozzá dupla idézőjeleket a szemantikai értékhez, így a whitespace egyértelmű elemzést nyer. Összetett űrlapok, például tulajdonság-hozzárendelés vagy csomagnév és -verzió esetén idézze az elválasztó utáni részt. Tartsa meg az elválasztó körüli szándékos szóközöket az idézőjeleken kívül.

A Visual Studióban az Idézőjelek hozzáadása az irányelv értéke köré kódjavítás is alkalmazható.

Example

Az alábbi kódrészlet a CA2267 megsértését mutatja be.

#:property Description=Hello World

Az alábbi kódrészlet kijavítja a szabálysértést.

#:property Description="Hello World"

A kódjavítás megőrzi a szóközöket az elválasztók körül, valamint az irányelv típusa és értéke között. A következő irányelvek például a neveket és az elválasztókat igazítják:

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

A kódjavítás idézőjeleket ad hozzá az igazítás módosítása nélkül:

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

Mikor kell letiltani a figyelmeztetéseket?

Nem ajánlott elnyomni ezt a figyelmeztetést. Az idézőjeles forma az üres karakterek egy irányelv értékében való megadásának támogatott módja, az idézőjelek nélküli forma pedig elavult.

Figyelmeztetés mellőzése

Fájlalapú alkalmazások esetén egyetlen szabálysértés mellőzése érdekében adjon hozzá egy #:property irányelvet a belépési pont fájlhoz.

#:property NoWarn=$(NoWarn);CA2267

Ha le szeretné tiltani egy fájl, mappa vagy projekt szabályát, állítsa annak súlyosságát none a konfigurációs fájlban.

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

További információ: Kódelemzési figyelmeztetések letiltása.

Lásd még