加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何使用intellisense支持编写类似string.Format的方法

发布时间:2020-12-15 08:23:51 所属栏目:百科 来源:网络整理
导读:考虑使用string.Format的frist参数之类的格式参数进行写入的方法.如您所知,Intellisense知道第一个参数的约束并检查其与参数的一致性.我该怎么写这样的方法. 举个简单的例子,考虑一下string.Format的包装: public string MyStringFomratter(string formatSt
考虑使用string.Format的frist参数之类的格式参数进行写入的方法.如您所知,Intellisense知道第一个参数的约束并检查其与参数的一致性.我该怎么写这样的方法.

举个简单的例子,考虑一下string.Format的包装:

public string MyStringFomratter(string formatStr,params object[] arguments)
{
    // Do some checking and apply some logic
    return string.Format(formatStr,arguments);
}

我怎么能对编译器或IDE说formatStr就像string.Format的第一个参数?

所以,如果我有这样的代码:

var x = MyStringFormatter("FristName: {0},LastName: {1}",firstName);
// This code should generate a warning in the IDE

解决方法

您不能让Visual Studio分析参数内容 – 它只是验证代码是否可编译,即使您没有为所有占位符指定参数,也可以编译String.Format.但是您可以使用Visual Studio加载项(例如 ReSharper或 CodeRush)分析占位符计数String.Format格式化字符串并验证传递给此方法的参数计数.

BTW我没有使用ReSharper,但看起来它支持将任何方法标记为字符串格式化方法 – Defining Custom String Formatting Methods.您应该使用StringFormatMethodAttribute属性注释您的方法:

[StringFormatMethod("formatStr")]
public string MyStringFomratter(string formatStr,arguments);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读