Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A megfelelőség a következő célközönségek számára érdekes:
- C#-implementációkat tervező, megvalósító vagy karbantartó személyek.
- C#-implementációkat beszerezni kívánó kormányzati vagy kereskedelmi szervezetek.
- Tesztelési szervezetek, amelyek C#-megfelelőségi tesztcsomagot kívánnak biztosítani.
- Programozók, akik egy C#-implementációból egy másikba szeretnének kódokat portot adni.
- A Standard C#-t tanítani kívánó oktatók.
- A Standard C#-ról írni kívánt szerzők.
Ezért a megfelelőség a legfontosabb, és ennek a specifikációnak a nagy része a C# implementációkat és A C#-programokat megfelelővé tevő jellemzők megadását célozza.
A specifikációban szereplő, követelményeket meghatározó szöveg normatívnak minősül. Az ebben a specifikációban szereplő összes többi szöveg informatív, azaz csak tájékoztatási célokra szolgál. Ellenkező rendelkezés hiányában minden szöveg normatív. A normatív szöveg tovább bontható kötelező és feltételes kategóriákra. A feltételes normatív szöveg egy funkciót és annak követelményeit határozza meg, ahol a szolgáltatás nem kötelező. Ha azonban ez a jellemző meg van adva, szintaxisának és szemantikájának pontosan a megadott módon kell lennie.
A nem definiált viselkedést ebben a specifikációban csak a "nem definiált viselkedés" szavak jelzik.
A szigorúan megfelelő programnak csak az ebben a specifikációban meghatározott nyelv ezen jellemzőit kell használnia. (Ez azt jelenti, hogy egy szigorúan megfelelő program nem használhat feltételesen normatív funkciókat.) Nem hozhat létre olyan kimenetet, amely meghatározatlan, meghatározatlan vagy implementálás által meghatározott viselkedéstől függ.
A C# megfelelő megvalósítása minden szigorúan megfelelő programot elfogad.
A C# megfelelő implementációjának biztosítania és támogatnia kell a specifikáció normatív (de feltételesen normatív) részeiben leírt összes típust, értéket, objektumot, tulajdonságot, metódust és programszintaxist és szemantikát.
A C# megfelelő implementációjának a Unicode Szabványnak megfelelő karaktereket kell értelmeznie. A megfelelő implementációknak el kell fogadniuk az UTF-8 kódolási űrlappal kódolt összeállítási egységeket.
A C# megfelelő végrehajtása nem fordíthatja le sikeresen a #error előfeldolgozási irányelvet tartalmazó forrást, kivéve, ha az egy feltételes fordítással kihagyott csoport része.
A C# megfelelő végrehajtásának legalább egy diagnosztikai üzenetet kell létrehoznia, ha a forrásprogram megsérti a szintaxis bármely szabályát, vagy bármilyen negatív követelményt (a "kell" vagy "nem" vagy "nem" vagy "hiba" vagy "figyelmeztetés" követelményként definiálva), kivéve, ha a követelményt a "nincs szükség diagnosztikára" szöveggel jelölik meg.
A C# megfelelő implementációja az ebben a specifikációban leírtakon túl további típusokat és tagokat is biztosíthat, feltéve, hogy nem változtatják meg a szigorúan megfelelő programok viselkedését. Az ebben a specifikációban leírt attribútumok a megfelelő megvalósításon belül további célokra is érvényesek lehetnek. Azoknak a programoknak a diagnosztizálásához, amelyek a specifikációnak megfelelően formázatlan bővítményeket használnak, megfelelő implementációkra van szükség. Ennek elvégzése után azonban lefordíthatják és végrehajthatják az ilyen programokat. (A bővítmények használatának képessége azt jelenti, hogy a megfelelő megvalósítás nem foglal le más azonosítókat, mint az ebben a specifikációban kifejezetten fenntartottak.)
A C# megfelelő implementációját olyan dokumentumnak kell kísérnie, amely meghatározza az összes implementáció által meghatározott jellemzőt és az összes bővítményt.
A C# megfelelő végrehajtásának támogatnia kell a C. mellékletben dokumentált osztálykönyvtárat. Ez a kódtár ebben a specifikációban található hivatkozással érhető el.
A megfelelő program olyan, amely elfogadható a megfelelő megvalósításhoz. (Az ilyen programok bővítményeket vagy feltételesen normatív funkciókat tartalmazhatnak.)
ECMA C# draft specification