Dynamic string formatting in c#

眉间皱痕 提交于 2020-01-05 07:17:11

问题


I created log method that accept string. When I want to use it I write something like:

Log(string.Format("Message {0}", AdditionalInfo));

How should I implement Log method in order to be able to use string Format but do not have to write it explicitly in method arguments:

Log("Message {0}", AdditionalInfo);

I use .net 2.0


回答1:


public void Log(string formatString, params object[] parameters)
{
    Log(String.Format(formatString, parameters));
}



回答2:


public void Log(string format, params object[] args)
{
    DoTheLog(string.Format(format, args));
}



回答3:


void Log(string format, params object[] args)
{
  Log(string.Format(format, args));
}



回答4:


Try something like:

public void Log(string format, params object[] arguments)
{
    string message = string.Format(format, arguments);
    // Do something with message.
}



回答5:


You could perhaps write a wrapper for your Log method. I hope something like this works.

public void Log(string format, object args)
{
    Do_Log(string.Format(format, args))
}

Now you can have Do_Log() as private and not expose it to consumers of your class.



来源:https://stackoverflow.com/questions/6304279/dynamic-string-formatting-in-c-sharp

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!