class Object with Dependency Injection
Salih Dincer
salihdb at hotmail.com
Sun Jun 18 19:58:44 UTC 2023
On Sunday, 18 June 2023 at 16:58:15 UTC, Ali Çehreli wrote:
> The problem is with the deduced type of 'services'. I don't
> know the mechanism behind it but the common type of 'truck' and
> 'ship' are deduced to be Object. Apparently, their interfaces
> don't take part in that decision. I don't know why.
This is very interesting because it looks like a bug. Why is
there no problem in an abstracted object, but things get confused
in the interface (ITransport)?
On Sunday, 18 June 2023 at 16:58:15 UTC, Ali Çehreli wrote:
> One solution is to help the compiler by casting them to your
> desired interface:
In fact, there is no need to cast:
```d
interface ITransport
{
string deliver();
}
//...
void main()
{
auto truck = new Truck;
ITransport ship = new Ship;
/* or
ITransport truck = new Truck;
auto ship = new Ship;
// or
ITransport truck = new Truck;
ITransport ship = new Ship;//*/
}
```
SDB at 78
More information about the Digitalmars-d-learn
mailing list