meh*_*dvd 6 .net c# intellisense visual-studio
考虑使用format像string.Format's frist参数这样的参数进行写入的方法.如您所知,Intellisense知道第一个参数的约束并检查其与参数的一致性.我该怎么写这样的方法.
举个简单的例子,考虑一下string.Format如下:
public string MyStringFomratter(string formatStr, params object[] arguments)
{
// Do some checking and apply some logic
return string.Format(formatStr, arguments);
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能到编译器或IDE,它说的formatStr是一样的东西string.Format的第一个参数?
所以,如果我有这样的代码:
var x = MyStringFormatter("FristName: {0}, LastName: {1}", firstName);
// This code should generate a warning in the IDE
Run Code Online (Sandbox Code Playgroud)
Ser*_*kiy 10
您不能让Visual Studio为您分析参数内容 - 它只是验证代码是否可编译,String.Format即使您没有为所有占位符指定参数,也可以编译.但您可以使用Visual Studio加载项(例如ReSharper或CodeRush)分析占位符计数String.Format格式化字符串并验证传递给此方法的参数计数.
BTW我没有使用ReSharper,但看起来它支持将任何方法标记为字符串格式化方法 - 定义自定义字符串格式化方法.您应该使用StringFormatMethodAttribute属性注释您的方法:
[StringFormatMethod("formatStr")]
public string MyStringFomratter(string formatStr, params object[] arguments)
{
// Do some checking and apply some logic
return string.Format(formatStr, arguments);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2380 次 |
| 最近记录: |