¿Solo curiosidad sobre cómo .NET CLR maneja las interfaces internamente?¿Cómo implementa .Net CLR una "Interfaz" internamente?
Q1] ¿Qué pasa cuando CLR se encuentra con algo como: (. Mismos que se utilizan a continuación)
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();
}
}
P2: En el ejemplo anterior cómo son (A) y (B) diferenciado?
Q3: ¿Se tratan Generic Interfaces de manera diferente?
(siento como un novato cuando se hacen preguntas básicas como estos ... de todos modos ....)
Thx todos.
ya que es solo en parte una respuesta Lo dejo aquí. Para comenzar con su código mySampleIntobj.SampleMethod(); y myClassObj.SampleMethod(); podría llamar a dos métodos diferentes. El primero llamará a cualquier método explícitamente implementado que coincida con la llamada, el segundo no. solo en el caso donde no hay una coincidencia de método explícita, ¿llamarán al mismo método? –
¿Esto compila? AFAIK, deberías tener un 'SampleMethod()' público para la llamada (B). – Humberto
oh sí lo siento ... editado/corregido ahora :) thx :) – Amitd