# 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.