esemény
Intelligens alkalmazások létrehozása
márc. 17. 21 - márc. 21. 10
Csatlakozzon a meetup sorozathoz, hogy valós használati esetek alapján, skálázható AI-megoldásokat hozzon létre más fejlesztőkkel és szakértőkkel.
RegisztrációEzt a böngészőt már nem támogatjuk.
Frissítsen a Microsoft Edge-re, hogy kihasználhassa a legújabb funkciókat, a biztonsági frissítéseket és a technikai támogatást.
Ez a cikk a következő fordítóhibákat ismerteti:
type2
"type1
" típusú operandusokonout
a ref
. - OverloadResolutionPriorityAttribute
" parancsra egy felülíró tagon.OverloadResolutionPriorityAttribute
" ezen a tagon.Ezenkívül a következő fordító figyelmeztetése:
ref
out
vagy tömbök rangsorában különbözik, nem cls-kompatibilisout
a ref
.Ezenkívül a következő fordító figyelmeztetése:
ref
out
vagy tömbök rangsorában különbözik, nem cls-kompatibilisHa túlterhelt operátorokat hoz létre az osztályban, az aláírásnak meg kell egyeznie az adott operátorhoz szükséges paraméterek számával. Helytelen számú paraméter szerepel az operátor definíciójában.
Emellett a túlterhelési operátoroknak a megadott operátornevet kell használniuk. Az egyetlen kivétel egy konverziós operátor létrehozásakor van, ahol az operátor neve megegyezik az átalakítás visszatérési típusával.
Ezek a hibák azt jelzik, hogy olyan túlterheléseket hozott létre, amelyek nem különböznek egymástól. Gyakori okok például:
M(dynamic)
és M(object)
, vagy M2(string)
és M2(string?)
.M(ref int)
és M(out int)
.init
egy és egy set
kiegészítőt is tartalmazott.A kód meghív egy metódust, ahol a név létezik, de egyes argumentumok helytelenek, vagy helytelen számú argumentumot használt. Ha egy bővítménymetódust próbál meghívni, előfordulhat, hogy a benne lévő osztály nem importált névtérben van.
Megjegyzés
A legújabb fordítók nem használnak hibát CS1928
. Az újabb fordítók kizárólag azokat használják CS1929
.
type2
"type1
" típusú operandusokonEzek a hibák azt jelzik, hogy nincs jobb túlterhelés, mint mások. A hibáknak több oka is lehet:
A különböző argumentumok jobbak az egyes paramétereknél. Az egyik pontos egyezés lehet, a másik pedig átalakítást igényel:
void M(int a, double b) { }
void M(double a, int b) {}
M(1, 1); // ambiguous
Több felhasználó által definiált konverziós operátor is jelölt. A konverziós operátorok deklarálhatók a forrástípusban, az alaptípusban, a céltípusban vagy az alaptípusban. Ha egy konverziós operátor egynél többben van definiálva, a fordító nem tud választani.
Több konverziós operátor is végrehajthat egy kompatibilis átalakítást.
Egy vagy több argumentumot használ default
(nem default(T)
) és több típus is kiválasztható.
A legtöbb esetben explicit leadás hozzáadásával megadhatja, hogy melyik túlterhelést kell választani.
OverloadResolutionPriorityAttribute
" parancsra egy felülíró tagon.OverloadResolutionPriorityAttribute
" ezen a tagon.A kód megsértette azokat a szabályokat, hogy az OverloadResolutionPriorityAttribute egyik túlterhelést részesítse előnyben a másik helyett. A következő metódustípusokra nem alkalmazható OverloadResolutionPriorityAttribute
:
Ezenkívül nem alkalmazhatja azt OverloadResolutionPriorityAttribute
egy vagy abstract
több override
tagravirtual
. A fordító az alaptípus-deklaráció értékét használja.
.NET-visszajelzés
A(z) .NET egy nyílt forráskód projekt. Visszajelzés adásához válasszon egy hivatkozást:
esemény
Intelligens alkalmazások létrehozása
márc. 17. 21 - márc. 21. 10
Csatlakozzon a meetup sorozathoz, hogy valós használati esetek alapján, skálázható AI-megoldásokat hozzon létre más fejlesztőkkel és szakértőkkel.
Regisztráció