我无法在控制台上打印变量

时间:2014-12-01 09:21:30

标签: c#

我正在学习C#而且我写了下面的代码,但是我无法在控制台上打印这个名字。谁能告诉我为什么?

 public class BaseClass
{
    public String Name;

    public void Print()
    {

        Console.WriteLine("Name is:", Name);

    }

}
class PublicDemo
{
    static void Main(string[] args)
    {
        BaseClass bc = new BaseClass();
        Console.Write("Enter your Name:");
        bc.Name = Console.ReadLine();
        Console.ReadLine();
        bc.Print();
        Console.ReadLine();
    }
}

3 个答案:

答案 0 :(得分:6)

这是因为您的WriteLine电话中没有格式参数:

Console.WriteLine("Name is:{0}", Name);
// Name is:user1794624

你可以做很多事:

Console.WriteLine("Name three times: {0} {0} {0}, followed by three {1}", Name, 3);
// Name three times: user1794624 user1794624 user1794624, followed by three 3

答案 1 :(得分:4)

试试这个:

Console.WriteLine("Name is: {0}", Name);

Console.Write Method (String, Object[])的作用类似于String.Format

  

此方法使用.NET的复合格式化功能   将对象的值转换为其文本表示的框架   并将该表示嵌入字符串中。结果字符串是   写入输出流。

     

format参数由零个或多个混合文本组成   使用零个或多个索引占位符(称为格式项)   对应于此方法的参数列表中的对象。该   格式化过程用文本替换每个格式项   表示相应对象的值。

     

格式项的语法是{index [,alignment] [:formatString]},   它指定了必需的索引,可选的长度和对齐方式   格式化文本的格式,以及格式说明符的可选字符串   控制相应对象值的方式的字符   格式化。

Console.Write MSDN

String.Format MSDN

答案 2 :(得分:2)

Console.Write("Enter your Name:");是问题所在。它永远不会打印值或变量Name,因为您没有将其包含在overload of Console.Write中。

Console.Write Method (String, Object[])与方法String.Format具有相同的行为。 实际上,行Console.Write("Enter your Name: {0}", Name);具有相同的

输出
Console.Write(String.Format("Enter your Name: {0}",Name));

然后使用:

Console.Write("Enter your Name: {0}", Name);

Console.Write("Enter your Name: " + Name);

Console.Write(String.Format("Enter your Name: {0}",Name));