S4017 only for public members?

S4017 (Method signatures should not contain nested generic types) refers to warning “CA1006: Do not nest generic types in member signatures” from Microsoft.

CA1006 applies only to “externally visible members”.
Why S4017 applies to internal or private members, too?

Hello @lg2de,

I don’t think there is a particular reason.
We decided to apply the rule to all member visibility at the time of implementation probably because it made more sense to us.
CA1006 considered (the rule is deprecated from what I have seen) only a bad practice on an externally visible member.

To me, there is no obvious good answer to this issue, you can argue for one or another.

This is why our rule is not enabled by default to let the user choose.

That being said, the rule can evolve if we see that it makes sense.

Have a good day!