tgr*_*ray 0 c# string-formatting multiple-constructors
我是C#的新手,并试图找出字符串插入(即"some {0} string", toInsert),并遇到了一个我没想到的问题......
在您有两个构造函数的情况下:
public MyClass(String arg1) { ... }
public MyClass(String arg1, String arg2) { ... }
Run Code Online (Sandbox Code Playgroud)
我可以使用带有字符串插入的第一个构造函数吗?
...
toInsert = "def"
myClass = new MyClass("abc{0}ghi", toInsert)
...
Run Code Online (Sandbox Code Playgroud)
或者C#将此解释为第二个构造函数并将文字"abc{0}ghi"作为第一个参数传递?
是的,这将被解释为第二个参数.
您描述的行为称为字符串格式,接受此样式字符串的所有内容在后台使用string.Format().有关详细信息,请参阅该方法的文档.
要获得所需的行为,请使用以下代码:
myClass = new MyClass(string.Format("abc{0}ghi", toInsert));
Run Code Online (Sandbox Code Playgroud)
做就是了:
public MyClass(string format, params object[] args)
{
this.FormattedValue = string.Format(format, args);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
989 次 |
| 最近记录: |