Closed bkoelman closed 6 years ago
Isn't this already done?
We may have occasionally added local functions as part of other work. This issue tracks all potential locations.
I recall you're not such a big fan of them, so I thinks it's best for me to create individual PRs for the places they may make sense. Then you can accept/reject as you see fit.
Similar to methods, local functions should probably be constrained in their maximum number of parameters (AV1561) and maximum number of statements (AV1500). Tracked by #140.
Likewise, mentions in other rules may need to be expanded to include local functions. In most cases, it should be sufficient to replace "methods" or "members" with: "methods/members and local functions".
null
(AV1135) #149Don't include numbers in variables, parameters and type members (AV1704)Name a member, parameter or variable according to its meaning and not its type (AV1707)Async
orTaskAsync
(AV1755) #153Any()
to determine whether anIEnumerable<T>
is empty (AV1800) #154Avoid inline comments (AV2310) #155Additionally, we may want to provide guidance on when to (not) use local functions:
Discussed in https://github.com/dennisdoomen/CSharpGuidelines/issues/96#issuecomment-335619190:
Func
variables into local functions.yield
-based deferred execution methods: