Una delle caratteristiche di .net (più precisamente del CLR) è quelle di consentire di creare le propie apllicazioni attingendo da "moduli" scritti in diversi linguaggi, può capitare di usare una dll scitta in VB anziche in C# o viceversa.
Nonostante la facilità di questa convivenza ci sono aspetti a cui prestare attenzione: gli indicizzatori.
Nel CLR gli indicizzatori non sono altro che propetà con parametri, di cui poi ogni linguaggio da la sua "interpretazione", in C# gli indicizzatori sono accessibili tramite [] (di fatto è come se venisse fatto l'overload di "[]") cosa che lo rende i nutilizzabile da altri linguaggi, ad esempio il VB che usa "()" per specificare gli elementi di una array.
il problema è aggirabile pesonalizzando l'indicizzaotore con un l'attributo:
public class pippo
{...
[System.Runtime.CompilerServices.IndexerName("test")]
public string this[int ts]
{
get
{......}
}
}
adesso il mio indicizzatore sarà accessibile da VB, ad esempio così:
Dim indicC as new pippo()
Console.WriteLine(indicC.test(2))
in alcuni linguaggi lattributo IndexerName consente di definire più indicizzatori per un tipo, cosa che non è possibile in C# perche non fa riferimento all'indicizzatore per nome.
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
- ma dove vai se il var non ..., il 19 luglio 2006 alle 14:47
- DLINQ volume due, il 15 settembre 2005 alle 15:43
- DLinq mi piace , il 15 settembre 2005 alle 10:19
- ancora stringhe, il 21 dicembre 2004 alle 15:24
- in parziale rettifica o precisazione di quanto detto(...), il 13 dicembre 2004 alle 08:00
- interfacce, implementazioni esplicite, l'1 dicembre 2004 alle 14:12