túlterhelés Resolution

Ha a Visual Basic fordító érzékeli a hívás egy meghatározott eljárás több túlterhelt változatainak meg kell határozni, melyik túlterhelt változatát meg kell hívni. Ehhez a fordító a következő tevékenységeket végzi:

Elérhetőség. Kizárt vesszük figyelembe azokat a túlterhelt változatainak, amelyek tiltják a hívót, hogy hívják őket.

A paraméterek száma. Kizárt vesszük figyelembe azokat a túlterhelt változatainak, amelyben van egy másik paraméterek száma, mint ami a hívást.

Paraméter adattípusok. A fordító előnyösen használ például módszerek, nem kiterjesztése módszer. Ha talált egy példánya módszer, amely előírja, hogy hasonlítsa össze eljárás hívás csak a kiterjesztése szélesítése, az összes kiterjesztés módszerekkel eltávolítjuk, és a fordító továbbra is csak a példánymetódus jelöltek. Amennyiben ilyen módszer ekzesplyara nem található, a fordító továbbra is használni, mint például módszerek és kiterjesztése módszerek.

Ebben a lépésben ki vannak zárva a figyelmet e túlterhelt változata milyen típusú adathívás érvek nem alakítható típusú paraméterek meghatározása ebben túlterhelt változata.

Szűkül átalakítás. Kizárt vesszük figyelembe azokat a túlterhelt változata igénylő szűkül konverziós hívás típusú érveket bizonyos paramétereket. Ez attól függ, hogy milyen típusú értékek hitelesítési kulcs (Operator Option Strict) be- és kikapcsolása.

A legkisebb kiterjesztése. Compiler úgy a fennmaradó túlterhelés párban. Minden pár fordító összehasonlítja az adattípusok meghatározott paraméterek. Ha az egyik túlterhelés minden típusú bővíteni más releváns típusú túlterhelés, a fordító kiküszöböli az utóbbi. Más szóval, továbbra is a túlterhelés, amely megköveteli a kisebb bővítése az átalakulás.

Az egyetlen lehetőség. A fordító továbbra is úgy véli torlódás párban, amíg nem lesz csak egy túlterhelés, ami miatt. Ha ez a folyamat nem konvergál egy túlterhelés hiba generálódik.

Az alábbi ábra mutatja, a folyamat, amely meghatározza a túlterhelt változatok hívni.

Állásfoglalás túlterhelt változatainak

A következő eljárás megoldására prmere túlterhelt változatainak.

Az első hívás fordító eltünteti az első túlterhelés, mint az első argumentum (Short) keskenyedik a megfelelő paraméter (Byte). Ezután a harmadik túlterhelés kizárni, mivel minden típusú érvelés második túlterhelés (Short és Single) bővíthető a megfelelő típust a harmadik túlterhelés (egész és egységes). A második változat túlterhelt kevesebb bővítése, ezért a fordító használja azt a hívást.

A második hívás a fordító nem kiküszöbölése gyorsulás függően szűkület. A harmadik túlterhelés megszűnik ugyanazon okból, mint az első hívást egy második hívást is terhelje kisebb kiterjedésű argumentumtípusoknak. Azonban a fordító nem tud választani az első és a második torlódás. Mindegyikben van egy bizonyos típusú paraméter, amely kitágítja a megfelelő típus a másikba (Byte és rövid. De egy- és kétágyas). Ezért a fordító hibát generál túlterhelés felbontás.

Ha két túlterhelés eljárás azonos aláírások az eltéréssel, hogy az utolsó paraméter nyilvánították Választható (Visual Basic) egy és ParamArray a másik, a fordító megoldja a hívást eljárás az alábbiak szerint:

Ha az utolsó argumentum egy hívás, mint a

Kapcsolódó cikkek