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.
Tato klauzule je informativní.
B.1 Obecné
Tato příloha shromažďuje některé informace o přenositelnosti, které jsou uvedeny v této specifikaci.
B.2 Nedefinované chování
Chování není definováno za následujících okolností:
- Chování ohraničující asynchronní funkce při implementaci metod
INotifyCompletion.OnCompletedrozhraní awaiterem aICriticalNotifyCompletion.UnsafeOnCompletednezpůsobí vyvolání delegáta obnovení najednou (§12.9.9.4). - Předávání ukazatelů jako referenčních nebo výstupních parametrů (§24.3).
- Při dereferencování výsledku převodu jednoho typu ukazatele na jiný a výsledný ukazatel není správně zarovnaný pro typ s odkazem na typ. (§24.5.1).
- Je-li unární
*operátor použit na ukazatel obsahující neplatnou hodnotu (§24.6.2). - Pokud je ukazatel dolní index pro přístup k prvku mimo hranice (§24.6.4).
- Úprava objektů spravovaného typu pomocí pevných ukazatelů (§24.7).
- Obsah paměti nově přidělený
stackallocpodle §12.8.22. - Pokus o přidělení záporného počtu položek pomocí
stackalloc§12.8.22). - Implicitní dynamické převody (§10.2.10) vstupních parametrů s argumenty hodnoty (§12.6.4.2).
B.3 Chování definované implementací
Ke zdokumentování volby chování v každé z oblastí uvedených v této dílčí části se vyžaduje odpovídající implementace. Následující definice je definována implementací:
- Zpracování znaku Unicode NULL (U+0000) v kompilační jednotce. (§6.1)
- Chování, pokud je zjištěn identifikátor, který není v normalizačním formuláři C. (§6.4.3)
- Maximální hodnota povolená pro
Decimal_Digit+hodnotu inPP_Line_Indicator. (§6.5.8) - Interpretace input_characters v pp_pragma textu direktivy #pragma. (§6.5.10)
- Hodnoty všech parametrů aplikace předané
Mainhostitelským prostředím před spuštěním aplikace. (§7.1) - Mechanismus pro určení, zda je program zkompilován jako knihovna tříd nebo jako aplikace. (§7.1)
- Zásady nebo mechanismy používané implementací pro vytváření a zničení domén aplikací. (§7.1)
- Ukončovací kód, pokud efektivní metoda vstupního bodu skončí kvůli výjimce. (§7.2)
- Zda jsou finalizátory spuštěny jako součást ukončení aplikace. (§7.2)
- Určuje, jestli rozhraní API umožňují více než jednou spustit finalizační metodu. (§7.9)
- Zda jsou finalizátory spuštěny jako součást ukončení aplikace. (§7.9)
- Povrch rozhraní API poskytovaný
Expression<TDelegate>nad rámec požadavku na metoduCompile. (§8.6) - Přesná struktura stromu výrazů a přesný proces jeho vytvoření při převodu anonymní funkce na strom výrazu. (§10.7.3)
- Důvod převodu na kompatibilní typ delegáta může v době kompilace selhat. (§10.7.3)
- Hodnota vrácená při přidělení velikosti zásobníku nula je provedena. (§12.8.22)
-
System.ArithmeticExceptionZda je vyvolána (nebo podtřída) nebo přetečení se nepřetečení nevysestavuje s výslednou hodnotou, která je výsledkem levého operandu, pokud vuncheckedkontextu a levém operandu celočíselného dělení je maximální zápornáinthodnota nebolonghodnota a pravý operand je–1. (§12.12.3) -
System.ArithmeticExceptionKdyž je vyvolán (nebo podtřída) při provádění desetinné operace zbytek. (§12.12.4) - Dopad ukončení vlákna, pokud vlákno nemá žádnou obslužnou rutinu pro výjimku a vlákno je samo ukončeno. (§13.10.6)
- Mechanismus, kterým je dosaženo propojení s externí metodou. (§15.6.8)
- Dopad ukončení vlákna, pokud nebyla nalezena žádná odpovídající
catchklauzule pro výjimku a kód, který původně spustil toto vlákno, je dosaženo. (§22.4). - Spouštěcí prostředí může poskytovat další atributy, které ovlivňují provádění programu jazyka C#. (§23.5.1)
- Mapování mezi ukazateli a celými čísly. (§24.5.1)
- Účinek použití unárního
*operátorunullna ukazatel. (§24.6.2) - Chování při aritmetické přetečení ukazatele domény typu ukazatele. (§24.6.6, §24.6.7)
- Výsledek operátoru
sizeofpro nedefinované typy hodnot. (§24.6.9) - Chování
fixedpříkazu, pokud jenullmaticový výraz nebo pokud má matice nula prvků. (§24.7) - Chování
fixedpříkazu, pokud jenullřetězcový výraz . (§24.7)
B.4 Nespecifikované chování
- Čas spuštění finalizátoru (pokud existuje) objektu, jakmile se tento objekt stane způsobilým k dokončení (§7.9).
- Vyjádření
true(§8.3.9). - Hodnota výsledku při převodu hodnot mimo rozsah nebo
floatdoublehodnot na celočíselný typ vuncheckedkontextu (§10.3.2). - Přesný cílový objekt a cílová metoda delegáta vytvořeného z anonymous_method_expression obsahuje (§10.7.2).
- Rozložení polí s výjimkou nebezpečného kontextu (§12.8.17.4).
- Zda existuje nějaký způsob, jak provést blok anonymní funkce jiné než prostřednictvím vyhodnocení a vyvolání lambda_expression nebo anonymous_method-výraz (§12.21.3).
- Přesné načasování inicializace statického pole (§15.5.6.2).
- Výsledek vyvolání
MoveNextpři spuštění objektu enumerátoru (§15.15.5.2). - Výsledek přístupu ke objektu enumerátoru ve stavu před, během spuštění, nebo po spuštění (
Current). - Výsledek vyvolání
Dispose, když je objekt výčtu ve spuštěném stavu (§15.15.5.4). - Atributy typu deklarovaného ve více částech jsou určeny kombinováním atributů jednotlivých částí v nezadaném pořadí (§23.3).
- Pořadí, ve kterém jsou členové zabaleni do struktury (§24.6.9).
- Při provádění finalizátoru dojde k výjimce a tato výjimka se nezachytí (§22.4).
- Pokud se shoduje více než jeden člen, který člen je provedením
I.M(§19.6.5).
B.5 Další problémy
- Přesné výsledky vyhodnocení výrazu s plovoucí desetinnou čárkou se mohou lišit od jedné implementace po druhé, protože implementace je povolena k vyhodnocení těchto výrazů pomocí většího rozsahu a/nebo přesnosti, než je vyžadováno (§8.3.7).
- Některé podpisy jsou vyhrazeny pro kompatibilitu s jinými programovacími jazyky (§15.3.10).
Konec informativního textu
ECMA C# draft specification