Imagina esta configuración:
public interface IMass{
double Mass {get;}
}
public static class IMassExtension {
public static double ToKg(this IMass massObject) {
return massObject.Mass / 1000.0;
}
public static double CalculateInteractiveGravity(this IMass massObject, IMass otherMassObject)
{
return blah;
}
}
¿Está bien poner la clase de extensión en el mismo archivo que la interfaz (es decir, IMass.cs) o debería estar en un archivo separado (IMassExtension.cs)?
Una clase base no es posible aquí. Imagina
public class Person : Animal, IMass {}
y
public class House : Building, IMass {}