Solo curiosità su come .NET CLR gestisce le interfacce internamente?In che modo .Net CLR implementa internamente un'interfaccia?
Q1] Cosa accade quando CLR incontra qualcosa come: (. Stessa usata sotto)
interface ISampleInterface
{
void SampleMethod();
}
class ImplementationClass : ISampleInterface
{
// Explicit interface member implementation:
public void SampleMethod()
{
// Method implementation.
}
static void Main()
{
//Declare an interface instance.
ISampleInterface mySampleIntobj = new ImplementationClass(); // (A)
// Call the member.
mySampleIntobj.SampleMethod();
// Declare an interface instance.
ImplementationClass myClassObj = new ImplementationClass(); // (B)
//Call the member.
myClassObj.SampleMethod();
}
}
Q2: Nell'esempio precedente come sono (A) e (B) differenziato?
Q3: lo Generic Interfaces è trattato in modo diverso?
(sento come un niubbo quando si fanno domande di base come questi ... comunque ....)
Thx tutti.
dato che è solo in parte una risposta, lo lascerò qui. Per iniziare con il codice mySampleIntobj.SampleMethod(); e myClassObj.SampleMethod(); potrebbe chiamare due metodi diversi. Il primo chiamerà tutti i metodi esplicitamente implementati corrispondenti alla chiamata, il secondo no. solo nel caso in cui non esiste una corrispondenza di metodo esplicita chiameranno lo stesso metodo –
Compilare? AFAIK, dovresti avere un 'SampleMethod()' pubblico per la chiamata (B). – Humberto
oh sì mi dispiace..edito/corretto ora :) thx :) – Amitd