未验证 提交 564e3872 编写于 作者: C Cheryl Borley 提交者: GitHub

Remove unnecessary code: was When generating constructor, trim known prefixes...

Remove unnecessary code: was When generating constructor, trim known prefixes from argument name to get parameter name  (#34804)

* Fixes #33673

* Respond to feedback

* Remove unneeded code and add tests

* Fix access modifier
上级 adbfc3ea
......@@ -3676,5 +3676,43 @@ class D
{
}", options: options.MergeStyles(options.FieldNamesAreCamelCaseWithUnderscore, options.ParameterNamesAreCamelCaseWithPUnderscorePrefix, LanguageNames.CSharp));
}
[WorkItem(33673, "https://github.com/dotnet/roslyn/issues/33673")]
[Theory, Trait(Traits.Feature, Traits.Features.CodeActionsGenerateConstructor)]
[InlineData("_s", "s")]
[InlineData("_S", "s")]
[InlineData("m_s", "s")]
[InlineData("m_S", "s")]
[InlineData("s_s", "s")]
[InlineData("t_s", "s")]
public async Task GenerateConstructor_ArgumentHasCommonPrefix(string argumentName, string fieldName)
{
await TestInRegularAndScriptAsync(
$@"
class Program
{{
static void Main(string[] args)
{{
string {argumentName} = "";
new Prog[||]ram({argumentName});
}}
}}",
$@"
class Program
{{
private string {fieldName};
public Program(string {fieldName})
{{
this.{fieldName} = {fieldName};
}}
static void Main(string[] args)
{{
string {argumentName} = "";
new Program({argumentName});
}}
}}");
}
}
}
......@@ -51,9 +51,7 @@ public ParameterName(string nameBasedOnArgument, bool isFixed, NamingRule parame
{
// Otherwise, massage it a bit to be a more suitable match for
// how people actually writing parameters.
var trimmed = nameBasedOnArgument.TrimStart('_');
BestNameForParameter = trimmed.Length > 0 ? trimmed.ToCamelCase() : nameBasedOnArgument;
BestNameForParameter = parameterNamingRule.NamingStyle.MakeCompliant(BestNameForParameter).First();
BestNameForParameter = parameterNamingRule.NamingStyle.MakeCompliant(nameBasedOnArgument).First();
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册