Hãy tưởng tượng thiết lập này:
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;
}
}
Bạn có thể đặt lớp mở rộng trong cùng một tệp với giao diện (ví dụ IMass.cs) hoặc nên ở trong một tệp riêng (IMassExtension.cs)?
Một lớp cơ sở là không thể ở đây. Hãy tưởng tượng
public class Person : Animal, IMass {}
và
public class House : Building, IMass {}