我怎么能创建一个包含对象值的字符串?

时间:2013-03-02 19:16:58

标签: c# string visual-studio-2010 visual-studio

这个问题真的不难理解。我一直想知道这一点,并想知道如果可能的话,怎么办呢。如果可能的话,这就是我想做的事情:

    int number = 50;
    string text = "The number is %number";

我在上面的string中写了 %number ,我希望将number的值插入{{1}因为我通常会做这样的事情就像:

string

是的,我将 int number = 50; string text = "The number is " + number.ToString(); 整合到上面的number的方式是一种好的方式,但我一直想知道,是否有可能做一些事情,比如我写的第一个例子,将string的值放入object的所有位置,您需要编写某种类型的stringcharacter(用于引用string } {}以及object的名称加入object以获得string的结果,其中包含string的值?或者你能做到这一点吗?

2 个答案:

答案 0 :(得分:5)

您可以使用string.Format

string text = string.Format("The number is {0}", number);

请注意,所有对象都有ToString方法,这意味着所有对象都可以用作string.Format的参数,但ToString的默认响应是返回全名这种类型,可能没什么意义。

例如,这个:

public class Dummy
{
}

var d = new Dummy();
string text = string.Format("The dummy is {0}", d);

会将以下值分配给text

"The dummy is Your.Namespace.Dummy";

您有两种选择:

  1. 覆盖ToString并为您的新类型返回有意义的内容
  2. 取消财产或其他东西,例如:

    string text = string.Format("The dummy is {0}", d.SomeProperty);
    
  3. 另请注意string.Format可以使用多个参数:

    int a = 10;
    int b = 20;
    int c = a + b;
    string text = string.Format("{0} + {1} = {2}", a, b, c);
    

    string.Format比我在此处显示的要多得多,因此请点击文档链接(此答案的第一行)以了解更多信息。

答案 1 :(得分:0)

您可能需要检查 Sting.Format

string text = String.Format("The number1 is {0},number2 is {1}", number1, number2);

还有必要检查this关于 的讨论。何时使用String.Format vs string concatenation ? `