我正在学习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();
}
}
答案 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]}, 它指定了必需的索引,可选的长度和对齐方式 格式化文本的格式,以及格式说明符的可选字符串 控制相应对象值的方式的字符 格式化。
答案 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));