V3117. Constructor parameter is not used.
The analyzer detected a constructor with an unused parameter.
For example:
public class MyClass
{
protected string _logPath;
public String LogPath { get { return _logPath; } }
public MyClass(String logPath) // <=
{
_logPath = LogPath;
}
}
It seems that the programmer made a typo and wrote 'LogPath' instead of 'logPath', which resulted in not using the constructor's parameter anywhere in the code. The fixed version:
public class MyClass
{
protected string _logPath;
public String LogPath { get { return _logPath; } }
public MyClass(String logPath) // <=
{
_logPath = logPath;
}
}
Consider one more example.
public class MyClass
{
public MyClass(String logPath) // <=
{
//_logPath = logPath;
}
}
If you deliberately avoid using a constructor's parameter, we recommend that you mark the constructor with the 'Obsolete' attribute.
public class MyClass
{
[Obsolete]
public MyClass(String logPath) // <=
{
//_logPath = logPath;
}
}
You can look at examples of errors detected by the V3117 diagnostic. |