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

Jak*_*ake 2 c# string visual-studio-2010 visual-studio

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

    int number = 50;
    string text = "The number is %number";
Run Code Online (Sandbox Code Playgroud)

我在上面写了%编号string,我想要number插入的值string,因为我通常会做这样的事情就像:

    int number = 50;
    string text = "The number is " + number.ToString();
Run Code Online (Sandbox Code Playgroud)

是的,我整合numberstring上面的方式是一种好的方式,但我总是想知道,是否有可能做一些事情,比如我写的第一个例子,在哪里把一个值object放入一个string你想要的要做的是写一些类型characterstring(用于引用object),以及object进入a 的名称string得到一个string带有值的结果object吗?或者你能做什么?

ang*_*son 5

你会用string.Format:

string text = string.Format("The number is {0}", number);
Run Code Online (Sandbox Code Playgroud)

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

例如,这个:

public class Dummy
{
}

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

将指定类似以下值的内容text:

"The dummy is Your.Namespace.Dummy";
Run Code Online (Sandbox Code Playgroud)

您有两种选择:

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

    string text = string.Format("The dummy is {0}", d.SomeProperty);
    
    Run Code Online (Sandbox Code Playgroud)

另请注意,string.Format可以采用多个参数:

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

string.Format除了我在此处显示的内容之外,还有很多内容,因此请单击指向文档的链接(此答案的第一行)以了解更多信息.