Code inspection: Parameter of the constructor can be declared with the base type
This inspection reports a constructor parameter declared as a concrete type even though the constructor only uses base-type or interface members. This makes the constructed type less coupled to one implementation and allows more callers to pass compatible objects.
Example
interface ILogger
{
void Log(string message);
}
class ConsoleLogger : ILogger
{
public void Log(string message) { }
}
class Service
{
public Service(ConsoleLogger logger)
{
logger.Log("started");
}
}
interface ILogger
{
void Log(string message);
}
class ConsoleLogger : ILogger
{
public void Log(string message) { }
}
class Service
{
public Service(ILogger logger)
{
logger.Log("started");
}
}
Quick-fix
Change the constructor parameter type to the suggested base type or interface.
29 March 2026