- 积分
- 40165
- 好友
- 记录
- 主题
- 帖子
- 听众
- 收听
|
发表于 2013-3-25 15:28:15
|
显示全部楼层
首先我给你看看这两个方法的签名
[code=csharp] //
//
// 摘要:
// 获取用户按下的下一个字符或功能键。按下的键显示在控制台窗口中。
//
// 返回结果:
// 一个 System.ConsoleKeyInfo 对象,描述 System.ConsoleKey 常数和对应于按下的控制台键的 Unicode 字符(如果存在这样的字符)。System.ConsoleKeyInfo
// 对象还以 System.ConsoleModifiers 值的按位组合描述是否在按下该控制台键的同时按下了 Shift、Alt 或 Ctrl 修改键中的一个或多个。
//
// 异常:
// System.InvalidOperationException:
// System.Console.In 属性是从非控制台的某种流进行重定向的。
public static ConsoleKeyInfo ReadKey();
//
// 摘要:
// 获取用户按下的下一个字符或功能键。按下的键可以选择显示在控制台窗口中。
//
// 参数:
// intercept:
// 确定是否在控制台窗口中显示按下的键。如果为 true,则不显示按下的键;否则为 false。
//
// 返回结果:
// 一个 System.ConsoleKeyInfo 对象,描述 System.ConsoleKey 常数和对应于按下的控制台键的 Unicode 字符(如果存在这样的字符)。System.ConsoleKeyInfo
// 对象还以 System.ConsoleModifiers 值的按位组合描述是否在按下该控制台键的同时按下了 Shift、Alt 或 Ctrl 修改键中的一个或多个。
//
// 异常:
// System.InvalidOperationException:
// System.Console.In 属性是从非控制台的某种流进行重定向的。
[SecuritySafeCritical]
public static ConsoleKeyInfo ReadKey(bool intercept);
//
// 摘要:
// 从标准输入流读取下一行字符。
//
// 返回结果:
// 输入流中的下一行字符;如果没有更多的可用行,则为 null。
//
// 异常:
// System.IO.IOException:
// 发生了 I/O 错误。
//
// System.OutOfMemoryException:
// 内存不足,无法为返回的字符串分配缓冲区。
//
// System.ArgumentOutOfRangeException:
// 下一行字符中的字符数大于 System.Int32.MaxValue。
public static string ReadLine();[/code]
很明显ReadKey有一个重载,他的解释是 获取用户按下的下一个字符或功能键。按下的键可以选择显示在控制台窗口中。
也就是说一般用户询问用户输入Y和N进行退出时使用的,他只读取一个字符,
而ReadLine而不然 “从标准输入流读取下一行字符。” 意思是从你输入的字符流中读取一行。区别也就在这里吧,上面是一个字符,这里是一行。
|
|