Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Kompilátor generuje následující chyby pro nesprávné použití direktiv preprocesoru:
- CS1024: Očekává se direktiva preprocesoru
- CS1025: Je očekáván jednořádkový komentář nebo koncový znak řádku
- CS1027: očekává se direktiva #endif
- CS1028: Neočekávaná direktiva preprocesoru
- CS1029: #error: text
- CS1030: #warning: text
- CS1032: Po prvním tokenu v souboru nelze definovat nebo nedefinovat symboly preprocesoru
- CS1038: očekává se direktiva #endregion
- CS1040: Direktivy preprocesoru musí být na řádku zobrazeny jako první znak bez prázdného znaku.
- CS1517: Neplatný výraz preprocesoru
- CS1560: Neplatný název souboru zadaný pro direktivu preprocesoru. Název souboru je příliš dlouhý nebo není platný název souboru.
- CS1576: Číslo řádku zadané pro direktivu #line chybí nebo je neplatné
- CS1578: Název souboru, jednořádkový komentář nebo očekávaný konec řádku
- CS1633: Nerozpoznaná direktiva #pragma
- CS1634: Očekávané zakázání nebo obnovení
- CS1635: Nejde obnovit upozornění "kód upozornění", protože byl globálně zakázaný
- CS1691: Číslo není platné číslo upozornění
- CS1692: Neplatné číslo
- CS1694: Neplatný název souboru zadaný pro direktivu preprocesoru Název souboru je příliš dlouhý nebo není platný název souboru.
- CS1695: Neplatná syntaxe #pragma checksum; měla by být ve formátu #pragma checksum "název_souboru" "{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}" "XXXX..."
- CS1696: Očekává se jednořádkový komentář nebo konec řádku
- CS1709: Název souboru zadaný pro direktivu preprocesoru je prázdný
- CS7009: Nelze použít #r po prvním tokenu v souboru
- CS7010: Očekávaný název souboru v uvozovkách
- CS7011: #r je povolen pouze ve skriptech
- CS8097: #load je povolen pouze ve skriptech
- CS8098: Nelze použít #load po prvním tokenu v souboru
- CS8938: Hodnota direktivy #line chybí nebo je mimo rozsah
- CS8939: Koncová pozice direktivy #line musí být větší nebo rovna počáteční pozici.
- CS8996: Surové řetězcové literály nejsou povoleny ve direktivách preprocesoru
- CS9028: Direktiva #line span vyžaduje mezeru před první závorku, před posunem znaku a před názvem souboru.
-
CS9297:
#:Direktivy nemohou být za prvním tokenem v souboru -
CS9298:
#:Direktivy lze použít pouze v souborových programech (-features:FileBasedProgram) -
CS9299:
#:direktivy nemohou být za#ifdirektivou -
CS9314:
#!Direktivy lze použít pouze ve skriptech nebo souborových programech.
Neplatná syntaxe direktivy preprocesoru
- CS1024: Očekává se direktiva preprocesoru
- CS1025: Očekáván jednořádkový komentář nebo konec řádku
- CS1027: očekává se direktiva #endif
- CS1028: Neočekávaná direktiva preprocesoru
- CS1038: očekává se direktiva #endregion
- CS1040: Direktivy preprocesoru musí být na řádku zobrazeny jako první znak bez prázdného znaku.
- CS1517: Neplatný výraz preprocesoru
- CS1633: Nerozpoznaná direktiva #pragma
- CS1696: Očekává se jednořádkový komentář nebo konec řádku
- CS8996: Nezpracované řetězcové literály nejsou povoleny ve direktivách preprocesoru
Tyto chyby značí, že jste pro direktivy preprocesoru použili neplatnou syntaxi. Mezi obvyklé příčiny patří:
- Použití nerozpoznané direktivy po
#(CS1024, CS1633). - Zahrnutí víceřádkových komentářů k řádkům direktiv (CS1025, CS1696).
- Použití příkazů v neočekávaných umístěních (CS1028)
- Chybí požadované odpovídající direktivy (CS1027, CS1038).
- Nedefinujte nebo zrušte definici symbolů jako první token v souboru (CS1032).
- Neumístění direktivy jako první token na začátek řádku (CS1040).
- Použití neplatných výrazů v podmíněné kompilaci (CS1517)
- Použití nezpracovaných řetězcových literálů ve direktivách preprocesoru (CS8996).
Příklad CS1024 – Očekává se direktiva preprocesoru:
#import System // CS1024 - "import" is not a valid directive
Příklad CS1025 – jednořádkový komentář nebo očekávaný konec řádku:
#if true /* hello
*/ // CS1025 - multiline comment not allowed
#endif
Příklad CS1027 – očekává se direktiva #endif:
#if true // CS1027 - missing #endif
class Test { }
Příklad CS1028 – Neočekávaná direktiva preprocesoru:
#endif // CS1028 - no matching #if
Příklad CS1032 – #define a #undef direktivy preprocesoru musí být uvedeny před jinými tokeny:
/* Comment */
#define X // CS1032 - directive not first token in file
Příklad CS1038 – očekává se direktiva #endregion:
#region testing
class Test { }
// CS1038 - missing #endregion
Příklad CS1040 – Direktivy preprocesoru musí být prvním znakem, který není mezerou:
/* Comment */ #define X // CS1040 - directive not first on line
Příklad CS1517 – Neplatný výraz preprocesoru:
#if 1 // CS1517 - numeric literals not allowed
#endif
#if ~symbol // CS1517 - bitwise operators not allowed
#endif
Příklad CS1633 – nerozpoznaná direktiva #pragma:
#pragma unknown // CS1633 - "unknown" is not a valid pragma
Příklad CS8996 – Nezpracované řetězcové literály nejsou povoleny ve direktivách preprocesoru:
// CS8996.cs
#pragma checksum """raw_string""" "{406EA660-64CF-4C82-B6F0-42D48172A799}" "hash" // CS8996
class Test { }
Pokud chcete tuto chybu opravit, použijte běžný řetězcový literál:
#pragma checksum "filename.cs" "{406EA660-64CF-4C82-B6F0-42D48172A799}" "hash" // OK
class Test { }
Pokud chcete tyto chyby opravit, ujistěte se, že direktivy preprocesoru dodržují správná pravidla syntaxe popsaná v dokumentaci direktiv preprocesoru.
chyby direktiv #error a #warning
- CS1029: #error: text
- CS1030: #warning: text
- CS1634: Je očekáváno zakázání nebo obnovení
- CS1635: Nejde obnovit upozornění "kód upozornění", protože byl globálně zakázaný
- CS1691: Číslo není platné číslo upozornění
- CS1692: Neplatné číslo
K těmto chybám dochází, když kompilátor zpracovává #error, #warninga #pragma warning direktivy. Tyto direktivy umožňují generovat vlastní chybové a upozorňující zprávy během kompilace a řízení chování upozornění.
CS1029 zobrazí text chyby definované direktivou #error :
// CS1029.cs
class Sample
{
static void Main()
{
#error Let's give an error here // CS1029
}
}
Kompilace vytvoří následující výstup:
example.cs(9,8): error CS1029: #error: 'Let's give an error here // CS1029 '
CS1030 zobrazí text upozornění definovaného direktivou #warning :
// CS1030.cs
class Sample
{
static void Main()
{
#warning Let's give a warning here
}
}
Kompilace vytvoří následující výstup:
example.cs(6,16): warning CS1030: #warning: 'Let's give a warning here'
CS1634 nastane, když #pragma warning klauzule není správně vytvořena, například když chybí klíčová slova jako zakázat nebo obnovit.
// CS1634.cs
// compile with: /W:1
#pragma warning // CS1634
// Try this instead:
// #pragma warning disable 0219
class MyClass
{
public static void Main()
{
}
}
CS1635 dochází, když použijete možnost /nowarn příkazového řádku nebo nastavení projektu k zakázání varování globálně, ale použijete #pragma warning restore k pokusu o obnovení tohoto varování.
// CS1635.cs
// compile with: /w:1 /nowarn:162
enum MyEnum {one=1,two=2,three=3};
class MyClass
{
public static void Main()
{
#pragma warning disable 162
if (MyEnum.three == MyEnum.two)
System.Console.WriteLine("Duplicate");
#pragma warning restore 162 // CS1635
}
}
CS1691 nastane, když číslo předané direktivě #pragma warning není platné číslo upozornění:
// CS1691.cs
public class C
{
int i = 1;
public static void Main()
{
C myC = new C();
#pragma warning disable 151 // CS1691
// Try the following line instead:
// #pragma warning disable 1645
myC.i++;
#pragma warning restore 151 // CS1691
// Try the following line instead:
// #pragma warning restore 1645
}
}
CS1692 nastane, když číslo v direktivách preprocesoru jako #pragma a #line je neplatné, protože je příliš velké, v nesprávném formátu nebo obsahuje neplatné znaky:
// CS1692.cs
#pragma warning disable a // CS1692
// Try this instead:
// #pragma warning disable 1691
class A
{
static void Main()
{
}
}
Tyto direktivy jsou užitečné pro scénáře podmíněné kompilace, kdy chcete vývojářům upozorňovat na konkrétní podmínky v kódu nebo řídit, která upozornění se během kompilace zobrazují. Další informace o použití těchto direktiv naleznete v dokumentaci k direktivám preprocesoru a #pragma upozornění.
#line chyby direktiv souborů
- CS1560: Neplatný název souboru zadaný pro direktivu preprocesoru. Název souboru je příliš dlouhý nebo není platný název souboru.
- CS1576: Číslo řádku zadané pro direktivu #line chybí nebo je neplatné
- CS1578: Název souboru, jednořádkový komentář nebo očekávaný konec řádku
- CS1694: Neplatný název souboru zadaný pro direktivu preprocesoru Název souboru je příliš dlouhý nebo není platný název souboru.
- CS1695: Neplatná syntaxe #pragma checksum; měla by být #pragma checksum "název_souboru" "{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}" "XXXX..."
- CS1709: Název souboru zadaný pro direktivu preprocesoru je prázdný
- CS8938: Hodnota direktivy #line chybí nebo je mimo rozsah
- CS8939: Koncová pozice direktivy #line musí být větší nebo rovna počáteční pozici.
- CS9028: Direktiva #line span vyžaduje mezeru před první závorku, před posunem znaku a před názvem souboru.
Tyto chyby značí nesprávné použití #line direktivy nebo direktiv preprocesoru souvisejících se soubory. Mezi obvyklé příčiny patří:
- Neplatné nebo chybějící názvy souborů (CS1560, CS1694, CS1709).
- Nesprávný formát čísla řádku nebo hodnoty (CS1576, CS8938, CS8939).
- Chybí správná syntaxe názvů souborů a komentářů (CS1578).
- Chybně formátovaná
#pragma checksumsyntaxe (CS1695). - Nesprávné mezery v pokynech
#linespan (CS9028).
Příklad CS1560/CS1694 – Zadaný neplatný název souboru:
#line 100 "MyFile1234567890MyFile1234567890MyFile1234567890MyFile1234567890MyFile1234567890MyFile1234567890MyFile1234567890MyFile1234567890MyFile1234567890MyFile1234567890MyFile1234567890MyFile1234567890MyFile1234567890MyFile1234567890MyFile1234567890MyFile1234567890.txt" // CS1560/CS1694 - filename too long
Příklad CS1576 – Číslo řádku chybí nebo je neplatné:
#line "abc.sc" // CS1576 - missing line number
#line abc "file.cs" // CS1576 - invalid line number format
Příklad CS1578 – Očekávaný název souboru, komentář nebo konec řádku:
#line 101 abc.cs // CS1578 - filename not quoted
Příklad CS1695 – Neplatná syntaxe kontrolního součtu #pragma:
#pragma checksum "12345" // CS1695 - missing GUID and checksum
Příklad CS1709 – Prázdný název souboru:
#pragma checksum "" "{406EA660-64CF-4C82-B6F0-42D48172A799}" "" // CS1709 - empty filename
Příklad CS8938 – hodnota direktivy #line chybí nebo je mimo rozsah:
#line // CS8938 - missing value
#line 0 // CS8938 - out of range (must be 1-16,707,566)
Příklad CS8939 – chyba koncové pozice #line:
#line (1, 10) - (1, 5) "file.cs" // CS8939 - end column < start column
Příklad CS9028 – #line mezery direktivy span:
#line(1, 1) - (1, 10)"file.cs" // CS9028 - missing spaces
Pokud chcete tyto chyby opravit, ujistěte se, že direktivy #line preprocesoru a direktivy preprocesoru související se soubory dodržují správnou syntaxi, jak je popsáno v dokumentaci direktiv preprocesoru.
Nesprávné použití direktiv aplikací založených na souborech
-
CS9297:
#:Direktivy nemohou být za prvním tokenem v souboru -
CS9298:
#:Direktivy lze použít pouze v souborových programech (-features:FileBasedProgram) -
CS9299:
#:direktivy nemohou být za#ifdirektivou -
CS9314:
#!Direktivy lze použít pouze ve skriptech nebo souborových programech.
Tyto chyby značí, že jste nesprávně použili direktivy #: pro souborovou aplikaci. Další informace o syntaxi těchto direktiv najdete v článku o direktivách preprocesoru v části o souborových aplikacích. Nebo můžete prozkoumat aplikace založené na souborech podle kurzu o souborových aplikacích.
Soubor obsahuje direktivy script.cs
Následující chyby označují script.cs syntaxi v kompilovaném souboru C#:
- CS7009: Nelze použít #r po prvním tokenu v souboru
- CS7010: Očekává se název souboru v uvozovkách
- CS7011: #r je povolen pouze ve skriptech
- CS8097: #load je povolen pouze ve skriptech
Tyto direktivy nejsou podporovány v kompilovaném jazyce C#. Musíte je odebrat, nebo použít script.cs.