相关疑难解决方法(0)

如何在C#中使用复合格式创建类似于String.Format的自己的方法

我喜欢String.Format如何使用参数将变量注入到它正在格式化的字符串中.这称为复合格式,MSDN 在此讨论.

我希望这个功能与我的日志门面:

string foo = "fancy";
string bar = "message";
log.Debug("My {0} log {1}.", foo, bar)
Run Code Online (Sandbox Code Playgroud)

我的ILoggerFacade具有以下方法签名:

void Debug<T>(T message, params Object[] args);
Run Code Online (Sandbox Code Playgroud)

而且,我知道我可以非常简单地实现这一点:

ILog m_Log = \\some logging implementation
public void Debug<T>(T message, params Object[] args)
{
    m_Log.Debug(String.Format(message, args));
}
Run Code Online (Sandbox Code Playgroud)

但是,在Visual Studio中,我没有得到{0},{1},...参数的精彩突出显示:

复合格式化方法的参数突出显示

我想ReSharper对他们来说是可以接受的,而且似乎只是忽略了格式化参数而没有提供"intellisense"帮助.这是不好的,因为将使用外观的其他开发人员将期待这一点.

如何为自定义格式化方法获取参数突出显示和"intellisense",类似于以下方法:

Console.WriteLine(...)
String.Format(...)
etc...
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.

c# resharper syntax-highlighting

23
推荐指数
1
解决办法
2910
查看次数

标签 统计

c# ×1

resharper ×1

syntax-highlighting ×1