Fab*_*iro 31 .net c# string formatting
我有这样一个数组:
object[] args
Run Code Online (Sandbox Code Playgroud)
并且需要在字符串中插入这些args,例如:
str = String.Format("Her name is {0} and she's {1} years old", args);
Run Code Online (Sandbox Code Playgroud)
代替:
str = String.Format("Her name is {0} and she's {1} years old", args[0], args[1]);
Run Code Online (Sandbox Code Playgroud)
注意:实际上第一行代码工作正常!但args [1]失踪了!对不起,谢谢.每一个点:)
csh*_*net 78
如果数组args中至少有两个对象,那么您的第一个示例应该可以正常工作.
object[] args = new object[] { "Alice", 2 };
str = String.Format("Her name is {0} and she's {1} years old", args);
Run Code Online (Sandbox Code Playgroud)
Ste*_*hen 14
它应该按照你想要的方式工作.String类具有以下Format方法定义:
public static string Format(string format, params object[] args);
Run Code Online (Sandbox Code Playgroud)
看看你的例子中的"args"是一个对象数组,它应该适合.
小智 13
如果您不知道arguments数组中有多少个数组元素,请尝试使用string.Join().
string.Format("Arguments passed in to the program are: {0}", string.Join(" ", args));
Run Code Online (Sandbox Code Playgroud)
特别是在你的例子中:
string.Format("Her name is {0} years old", string.Join(" and she's ", args));
Run Code Online (Sandbox Code Playgroud)
就个人而言,我不喜欢数组对象的硬编码结构.这在整个应用程序中都要记住太多,并且难以维护.我宁愿将参数转换为带有接受数组的构造函数的"Person"对象,并重载ToString()以显示有关对象成员的特定信息.
class Person
{
private string m_sName;
private string m_sAge;
public Person(string[] args)
{
m_sName = args[0];
m_sAge = args[1];
}
public override string ToString()
{
return string.Format("Her name is {0} and she's {1} years old.", m_sName, m_sAge);
}
}
Run Code Online (Sandbox Code Playgroud)
因此,您可以构造一个"Person"对象并在调用时显示该消息.
var oNewPerson = new Person(args);
console.WriteLine(oNewPerson.ToString());
Run Code Online (Sandbox Code Playgroud)
这与Microsoft示例非常相似:
http://msdn.microsoft.com/en-us/library/ms173154(v=vs.80).aspx
| 归档时间: |
|
| 查看次数: |
63785 次 |
| 最近记录: |