gpt4 book ai didi

c# - 如何编写具有智能感知支持的 string.Format 之类的方法

转载 作者:行者123 更新时间:2023-11-30 18:25:32 25 4
gpt4 key购买 nike

考虑一种使用 format 参数编写的方法,例如 string.Format 的第一个参数。如您所知,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 加载项(例如 ReSharperCodeRush)分析 String.Format 格式化字符串的占位符计数并验证传递给此方法的参数计数。

顺便说一句,我没有使用 ReSharper,但看起来它支持将任何方法标记为字符串格式化方法 - Defining Custom String Formatting Methods .您只需使用 StringFormatMethodAttribute 属性注释您的方法:

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

关于c# - 如何编写具有智能感知支持的 string.Format 之类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29977408/

25 4 0
文章推荐: c - "if"条件不工作
文章推荐: c - C 的格式说明符
文章推荐: javascript - html5建表
文章推荐: c# - 无法创建 Azure WebSpace
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com