C#string.Format抛出异常

Osa*_*ama 0 c# string string-formatting

我试图格式化string使用string.Format但它抛出异常.

 var format = "public {0} {1} { get; {2}set; }";
        var arg0 = "long";
        var arg1 = "Ticks";

        var formatedString = string.Format(format, arg0, arg1, null);
Run Code Online (Sandbox Code Playgroud)

最后一行抛出一个System.FormatException具有以下细节:

    System.FormatException was unhandled
  HResult=-2146233033
  Message=Input string was not in a correct format.
  Source=mscorlib
  StackTrace:
       at System.Text.StringBuilder.AppendFormatHelper(IFormatProvider provider, String format, ParamsArray args)
       at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args)
       at System.String.Format(String format, Object arg0, Object arg1, Object arg2)
       at ConsoleApplication1.Program.Main(String[] args) in E:\lab\cheque\helloworldprism\ConsoleApplication1\ConsoleApplication1\Program.cs:line 11
       at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException: 
Run Code Online (Sandbox Code Playgroud)

Sco*_*ain 7

它不喜欢的{}{ get; {2}set; }利用他们两个,你必须逃脱花括号

var format = "public {0} {1} {{ get; {2}set; }}";
Run Code Online (Sandbox Code Playgroud)


jac*_*cob 5

你需要摆脱你的花括号,使用另一个花括号可以摆脱它。

var format = "public {0} {1} {{ get; {2}set; }}";
Run Code Online (Sandbox Code Playgroud)