Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel worden de volgende compilerfouten behandeld:
- CS0765 - Gedeeltelijke methoden met alleen een definiërende declaratie of verwijderde voorwaardelijke methoden kunnen niet worden gebruikt in expressiebomen.
- CS0831 - Een expressiestructuur bevat mogelijk geen basistoegang.
- CS0832 - Een expressiestructuur bevat mogelijk geen toewijzingsoperator
- CS0834 - Een lambda-expressie met een instructietekst kan niet worden geconverteerd naar een expressiestructuur.
- CS0835 - Kan lambda niet converteren naar een expressieboom waarvan het typeargument 'type' geen gedelegeerd type is.
- CS0838 - Een expressiestructuur bevat mogelijk geen initialisatiefunctie voor multidimensionale matrices.
- CS0845 - Een lambda van een expressiestructuur bevat mogelijk geen samenvouwende operator met een null- of standaard letterlijke linkerzijde.
- CS0853 - Een expressiestructuur bevat mogelijk geen benoemde argumentspecificatie.
- CS0854 - Een expressieboom mag geen aanroep bevatten die gebruikmaakt van optionele argumenten.
- CS0855 - Een expressiestructuur bevat mogelijk geen geïndexeerde eigenschap.
- CS1944 - Een expressiestructuur bevat mogelijk geen onveilige aanwijzerbewerking.
- CS1945 - Een expressiestructuur bevat mogelijk geen anonieme methode-expressie.
- CS1946 - Een anonieme methode-expressie kan niet worden geconverteerd naar een expressiestructuur.
-
CS1951 - Een expressieboom-lambda mag geen
ref,inofout-parameter bevatten. - CS1952 - Een expressiestructuur lambda bevat mogelijk geen methode met variabele argumenten.
- CS1963 - Een expressiestructuur bevat mogelijk geen dynamische bewerking.
- CS1989 - Async lambda-expressies kunnen niet worden geconverteerd naar expressiestructuren.
- CS2037 - Een expressieboom-lambda mag geen COM-aanroep bevatten met weggelaten ref bij argumenten.
- CS7053 - Een expressiestructuur bevat mogelijk geen 'functie'.
- CS8072 - Een expressiestructuur lambda mag geen null-doorgifteoperator bevatten.
- CS8074 - Een lambda voor een expressiestructuur bevat mogelijk geen initialisatiefunctie voor woordenlijst.
-
CS8075 - Een extensiemethode
Addwordt niet ondersteund voor een initialisatiefunctie voor verzamelingen in een expressie lambda. - Cs8110 - Een expressiestructuur bevat mogelijk geen verwijzing naar een lokale functie.
-
CS8122 - Een expressiestructuur bevat mogelijk geen operator voor patroonkoppeling
is. - CS8143 - Een expressieboom mag geen tuples als letterlijke waarden bevatten.
- Cs8144 - Een expressiestructuur bevat mogelijk geen tupleconversie.
- CS8153 - Een lambda van een expressiestructuur bevat mogelijk geen aanroep naar een methode, eigenschap of indexeerfunctie die met verwijzing wordt geretourneerd.
- CS8155 - Lambda-expressies die een referentie retourneren, kunnen niet worden geconverteerd naar expressiebomen.
- Cs8188 - Een expressiestructuur bevat mogelijk geen throw-expressie.
- CS8198 - Een expressiestructuur bevat mogelijk geen declaratie van een argumentvariabele.
- Cs8207 - Een expressiestructuur bevat mogelijk geen verwijdering.
-
CS8382 - Een expressiestructuur mag geen tuple
==of!=operator bevatten. - Cs8514 - Een expressiestructuur bevat mogelijk geen switchexpressie.
- CS8640 - Expressiebomen kunnen geen waarde van een ref struct of beperkt type bevatten.
- CS8642 - Een expressieboom mag geen null-coalescerende toewijzing bevatten.
- CS8790 - Een expressieboom mag geen patroonSystem.Index of System.Range indexertoegang bevatten.
-
CS8791 - Een expressiestructuur bevat mogelijk geen from-end-indexexpressie ('
^''). -
CS8792 - Een expressiestructuur mag geen bereikexpressie ('
..'') bevatten. -
CS8810 -
&' op methodengroepen kan niet worden gebruikt in expressiebomen. -
CS8849 - Een expressiestructuur mag geen -expression bevatten
with. - CS8927 - Een expressiestructuur bevat mogelijk geen toegang tot een statisch lid van de virtuele of abstracte interface.
- CS8952 - Een expressiestructuur bevat mogelijk geen geïnterpoleerde tekenreekshandlerconversie.
- CS8972 - Een lambda-expressie met kenmerken kan niet worden geconverteerd naar een expressiestructuur.
- CS9170 - Een expressiestructuur bevat mogelijk geen inlinematrixtoegang of -conversie.
- CS9175 - Een expressiestructuur bevat mogelijk geen verzamelingsexpressie.
- Cs9226 - Een expressiestructuur bevat mogelijk geen uitgevouwen vorm van parameterverzameling voor niet-matrixparams.
- CS9296 - Een expressiestructuur bevat mogelijk geen toegang tot extensie-eigenschappen.
- CS9307 - Een expressiestructuur bevat mogelijk geen benoemde argumentspecificatie buiten de positie.
- CS9369 - Een expressiestructuur bevat mogelijk geen samenvoegingsconversie.
Beperkingen voor expressieboom
Alle fouten in de voorgaande lijst geven aan dat u een C#-expressietype hebt gebruikt dat niet is toegestaan in een expressiestructuur. In de meeste gevallen vertegenwoordigen de verboden expressies de syntaxis die na C# 3.0 is geïntroduceerd. Deze expressies zijn niet toegestaan omdat ze een belangrijke wijziging zouden maken in alle bibliotheken die expressiestructuren parseren. Alle bibliotheken moeten worden uitgebreid om nieuwe C#-expressies te parseren als nieuwere constructs zijn toegestaan.
De volgende expressies zijn verboden:
- Aanroepen van gedeeltelijke methoden die geen uitvoeringsdeclaratie hebben.
- Aanroepen van voorwaardelijke methoden die zijn verwijderd.
- Aanroepen van lokale functies.
-
asynclambda-expressies zijn niet toegestaan. - Toegang
basegebruiken om rechtstreeks een virtuele methode aan te roepen die is gedeclareerd in een basisklasse. - toewijzingsbewerkingen .
- statement-lambdas zijn niet toegestaan.
- multidimensionale array-initialisatoren. In plaats daarvan moet u een multidimensionale matrix buiten de expressiestructuur maken en initialiseren.
-
dynamicbewerkingen zijn niet toegestaan. - patroonkoppelingsexpressies zijn niet toegestaan.
- Tuple-literalen en veel tuple-bewerkingen, zoals gelijkheidsvergelijkingen, zijn niet toegestaan.
-
throwexpressies zijn niet toegestaan. -
declaraties ongedaan maken (
_). - De index- en bereikoperators zijn niet toegelaten.
- Niet-destructieve mutatie met behulp van
withexpressies is niet toegestaan. - U kunt geen inline arrays declareren of openen.
- U kunt geen verzamelingsexpressies opnemen.
- Samenvoegingsconversies zijn niet toegestaan.
- De null-propagatie-operator en null-samenvoegingsoperator zijn niet toegestaan.
-
ref structtypen, zoals System.Span<T> en System.ReadOnlySpan<T> zijn niet toegestaan. -
in,outenrefparameters, inclusiefoutvariabeledeclaraties, zijn niet toegestaan. -
refretouren zijn niet toegestaan. - Aanroepen naar methoden die worden geretourneerd door
refzijn niet toegestaan. - Leden van statische abstracte interface kunnen niet worden geopend.
- Inline arrays.
- De
paramswijzigingsfunctie is alleen toegestaan voor eendimensionale matrices. Andere verzamelingstypen zijn niet toegestaan.
Andere beperkingen zijn:
- Extensie-eigenschappen kunnen niet worden geopend als extensies.
- Kenmerken kunnen niet worden toegepast op de lambda-expressie, de bijbehorende parameters of retourwaarde.
- De lambda-expressie moet worden geconverteerd naar een type dat is afgeleid van System.Linq.Expressions.Expression wiens typeparameter een gemachtigdentype is.
- benoemde en optionele parameters zijn beperkt. De expressie kan geen methode aanroepen die benoemde argumenten opgeeft en kan de standaardwaarde van een optionele parameter niet gebruiken.
-
Initialisatiefuncties voor woordenlijst zijn niet toegestaan. Geen van beide zijn uitbreidingsmethoden
Add. - De doelexpressie moet een lambda-expressie zijn. Constanten en variabelen zijn niet toegestaan, maar een lambda-expressie die een constante of variabele retourneert, is.
- Onveilige aanwijzerbewerkingen zijn niet toegestaan.
- COM-aanroepen moeten
refopnemen bij argumenten; ze kunnen niet worden gesuggereerd. - Het niet-ondersteunde
__arglisttrefwoord is niet toegestaan.