V3117. Constructor parameter is not used.
Анализатор обнаружил, что один из параметров конструктора не используется.
Рассмотрим пример.
public class MyClass
{
protected string _logPath;
public String LogPath { get { return _logPath; } }
public MyClass(String logPath) // <=
{
_logPath = LogPath;
}
}
В данном случае программист скорее всего опечатался, написав 'LogPath' вместо 'logPath', в результате чего параметр конструктора нигде не используется. Корректный код должен выглядеть так:
public class MyClass
{
protected string _logPath;
public String LogPath { get { return _logPath; } }
public MyClass(String logPath) // <=
{
_logPath = logPath;
}
}
Рассмотрим ещё один пример.
public class MyClass
{
public MyClass(String logPath) // <=
{
//_logPath = logPath;
}
}
В случае, если программист умышленно не использует параметр конструктора, мы предлагаем пометить конструктор атрибутом 'Obsolete'.
public class MyClass
{
[Obsolete]
public MyClass(String logPath) // <=
{
//_logPath = logPath;
}
}
Взгляните на примеры ошибок, обнаруженных с помощью диагностики V3117. |