![]() |
2 indexer im interface deklarieren. Wie?
Hallo zusammen,
hat von Euch schon mal einer 2 indexer in einer Schnittstelle deklariert, wobei die Parameterliste "[int index]" ist. Bei mir will es nur funktionieren, wenn die Parameterliste unterschiedlich ist (einmal [int index] und einmal [string index]). Entweder ist der erste Fall nicht zulässig oder ich stelle mich zu intelligent an. Wie kann eine solches interfaces aussehen? |
Re: 2 indexer im interface deklarieren. Wie?
Zwei Indexer mit selber Signatur? Geht per Definition nicht, weil der Compiler die Dinger dann nicht mehr unterscheiden kann.
|
Re: 2 indexer im interface deklarieren. Wie?
So probiert?
Code:
@Dax (string) ist eine andere Signatur as (int)
interface IMiep<T>
{ T this[int index] {get;} T this[string index] {get;} } |
Re: 2 indexer im interface deklarieren. Wie?
Heya Elvis
Zitat:
Ich glaub es ist eher sowas wie
Code:
gemeint.
interface IMiep
{ int this[int index] {get;} string this[int index] {get;} } Das (string) und (int) unterschiedliche Signaturen sind weiß ich *g* |
Re: 2 indexer im interface deklarieren. Wie?
So funktioniert es mit Delphi.NET (Winform)
Delphi-Quellcode:
Wie kann man das Beispiel in C# darstellen?
IMiep = interface
function get_Index1(index: integer): string; function get_Index2(index: integer): string; property Index1[index: integer]: string read get_Index1; property Index2[index: integer]: string read get_Index2; end; |
Re: 2 indexer im interface deklarieren. Wie?
Zitat:
Ich frag mich, warum das überhaupt in Delphi.NET geht :gruebel: greetz Mike |
Re: 2 indexer im interface deklarieren. Wie?
Ich schätze mal Delphi.NET setzt den Indexer-Zugriff einfach auf nen Call zur get_Index-Methode um, ohne wie C# das macht das DefaultMemberAttribute für die Methode zu setzen.
|
Re: 2 indexer im interface deklarieren. Wie?
Zitat:
Zitat:
In Chrome würde es zum Bleistift so aussehen:
Delphi-Quellcode:
Der generierte IL Code ist exakt der gleiche wie in C#. Wobei Item auch Mööp heißen könnte ohne, dass man es in C# erkennen würde. ;)
IMiep<T> = interface
property Item[index : Integer] : String read; default; property Item[name : String] : String read; default; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz