Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 2933|Odpověď: 0

[Komunikace] .NET/C# generický T kovariantní výstup a invertor v rozhraní

[Kopírovat odkaz]
Zveřejněno 03.08.2023 20:35:23 | | | |
Požadavky: Nedávno jsem se díval na zdrojový kód .NET a zjistil jsem, že v obecném rozhraní je klíčové slovo out, například:veřejné rozhraní IStringLocalizer<out T>, a pak ji studoval.

Obecné typové parametry v rozhraní lze deklarovat jako kovarianty nebo invertory. Kovariance umožňuje metodám rozhraní mít typ návratu, který je více odvozený než typ návratu definovaný parametrem generického typu. Invertor umožňuje, aby metoda rozhraní měla menší stupeň odvození z typu argumentu specifikovaného obecným parametrem. Obecná rozhraní s kovariantními nebo invertorovými generickými parametry se nazývají "varianty".

Kovariance: Použijte klíčové slovo out k deklaraci generického typového parametru jako kovariantního.
Inverzní: Použijte klíčové slovo in k deklaraci obecného typového parametru jako invertor.

Tento screenshot z VS2022 je velmi výmluvný – ukazuje, jaká omezení to přináší generikům, jak je vidět níže:



Zařazení do službyFunc<in T, ven TResult>To znamená, že typ parametru je T a typ návratu je TResult.

Odkaz:
Přihlášení k hypertextovému odkazu je viditelné.
Přihlášení k hypertextovému odkazu je viditelné.






Předchozí:Používá se nový časovač v .NET 6, PeriodicTimer,
Další:Qv2ray připojuje službu Trojan-Go na Windows
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com