1. 控制台应用程序的输入输出方法
1.1 输出方法
| 方法 |
描述 |
示例 |
| Console.WriteLine() |
向控制台输出文本并换行 |
Console.WriteLine("Hello World"); |
| Console.Write() |
向控制台输出文本但不换行 |
Console.Write("Hello "); Console.Write("World"); |
| Console.WriteLine(format, args) |
使用格式字符串输出文本并换行 |
Console.WriteLine("姓名: {0}, 年龄: {1}", name, age); |
| Console.Write(format, args) |
使用格式字符串输出文本但不换行 |
Console.Write("{0} + {1} = {2}", a, b, a + b); |
1.2 输入方法
| 方法 |
描述 |
示例 |
| Console.ReadLine() |
从控制台读取一行文本 |
string input = Console.ReadLine(); |
| Console.Read() |
从控制台读取单个字符(返回ASCII码) |
int ascii = Console.Read(); char c = (char)ascii; |
| Console.ReadKey() |
从控制台读取单个按键(返回按键信息) |
ConsoleKeyInfo key = Console.ReadKey(); Console.WriteLine("你按下了: " + key.KeyChar); |
2. 窗体应用程序的输入输出方法
2.1 输出方法
| 方法 |
描述 |
示例 |
| MessageBox.Show() |
显示消息对话框 |
MessageBox.Show("操作成功"); |
| MessageBox.Show(text, caption) |
显示带标题的消息对话框 |
MessageBox.Show("操作成功", "提示"); |
| MessageBox.Show(text, caption, buttons) |
显示带按钮的消息对话框 |
MessageBox.Show("确定要删除吗?", "确认", MessageBoxButtons.YesNo); |
| MessageBox.Show(text, caption, buttons, icon) |
显示带按钮和图标的消息对话框 |
MessageBox.Show("发生错误", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); |
| Label.Text |
设置标签控件的文本 |
label1.Text = "欢迎使用"; |
| TextBox.Text |
设置文本框控件的文本 |
textBox1.Text = "默认值"; |
| RichTextBox.Text |
设置富文本框控件的文本 |
richTextBox1.Text = "富文本内容"; |
2.2 输入方法
| 方法 |
描述 |
示例 |
| TextBox.Text |
获取文本框控件的文本 |
string input = textBox1.Text; |
| RichTextBox.Text |
获取富文本框控件的文本 |
string input = richTextBox1.Text; |
| ComboBox.Text |
获取或设置组合框的文本 |
string selected = comboBox1.Text; |
| ComboBox.SelectedItem |
获取组合框选中的项 |
object selected = comboBox1.SelectedItem; |
| ListBox.SelectedItems |
获取列表框选中的项集合 |
foreach (var item in listBox1.SelectedItems) { ... } |
| CheckBox.Checked |
获取复选框的选中状态 |
bool isChecked = checkBox1.Checked; |
| RadioButton.Checked |
获取单选按钮的选中状态 |
bool isChecked = radioButton1.Checked; |
| OpenFileDialog.ShowDialog() |
显示打开文件对话框 |
if (openFileDialog1.ShowDialog() == DialogResult.OK) { ... } |
| SaveFileDialog.ShowDialog() |
显示保存文件对话框 |
if (saveFileDialog1.ShowDialog() == DialogResult.OK) { ... } |
| FolderBrowserDialog.ShowDialog() |
显示文件夹浏览对话框 |
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) { ... } |
3. 输入输出方法对比
| 特性 |
控制台应用程序 |
窗体应用程序 |
| 界面类型 |
命令行界面(CLI) |
图形用户界面(GUI) |
| 输出方式 |
Console.WriteLine()、Console.Write() |
MessageBox、控件属性 |
| 输入方式 |
Console.ReadLine()、Console.Read()、Console.ReadKey() |
文本框、对话框、选择控件 |
| 交互方式 |
线性、文本命令 |
非线性、图形交互 |
| 适用场景 |
简单工具、脚本、服务器应用 |
用户友好的桌面应用 |
| 部署方式 |
可在命令行直接运行 |
通常需要安装或打包 |
4. 示例代码
4.1 控制台应用程序示例
示例:控制台应用程序的输入输出
using System;
namespace ConsoleIOExample
{
class Program
{
static void Main(string[] args)
{
// 输出示例
Console.WriteLine("欢迎使用控制台应用程序");
Console.Write("请输入您的姓名:");
// 输入示例
string name = Console.ReadLine();
Console.Write("请输入您的年龄:");
int age = int.Parse(Console.ReadLine());
// 格式化输出
Console.WriteLine("您好,{0}!您今年{1}岁。", name, age);
// 读取单个字符
Console.Write("请按任意键继续...");
Console.ReadKey();
}
}
}
4.2 窗体应用程序示例
示例:窗体应用程序的输入输出
using System;
using System.Windows.Forms;
namespace WindowsFormsIOExample
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnSubmit_Click(object sender, EventArgs e)
{
// 获取输入
string name = txtName.Text;
string age = txtAge.Text;
// 验证输入
if (string.IsNullOrWhiteSpace(name))
{
MessageBox.Show("请输入姓名", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (string.IsNullOrWhiteSpace(age))
{
MessageBox.Show("请输入年龄", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
// 显示输出
MessageBox.Show($"您好,{name}!您今年{age}岁。", "欢迎", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
private void btnOpen_Click(object sender, EventArgs e)
{
// 打开文件对话框
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "文本文件 (*.txt)|*.txt|所有文件 (*.*)|*.*";
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
// 显示选中的文件路径
lblFilePath.Text = openFileDialog.FileName;
}
}
}
}
5. 最佳实践
5.1 控制台应用程序最佳实践
- 使用清晰的提示信息引导用户输入
- 对用户输入进行验证和错误处理
- 使用格式化字符串提高输出的可读性
- 合理使用Console.ReadKey()来控制程序流程
- 对于复杂的输入,考虑使用命令行参数
5.2 窗体应用程序最佳实践
- 使用适当的控件类型来获取不同类型的输入
- 对用户输入进行实时验证
- 使用消息框提供清晰的反馈信息
- 合理使用对话框来处理复杂的输入操作
- 保持界面简洁,避免过多的输入控件
6. 总结
通过本教程的学习,你应该掌握了C#中控制台应用程序与窗体应用程序的输入输出方法:
- 控制台应用程序的输出方法:Console.WriteLine()、Console.Write()
- 控制台应用程序的输入方法:Console.ReadLine()、Console.Read()、Console.ReadKey()
- 窗体应用程序的输出方法:MessageBox.Show()、控件属性设置
- 窗体应用程序的输入方法:文本框、选择控件、对话框
- 两种应用程序类型的输入输出方法对比
- 输入输出操作的最佳实践
在实际开发中,你应该根据应用程序的类型和具体需求,选择合适的输入输出方法,以提供良好的用户体验。无论是控制台应用程序还是窗体应用程序,清晰、直观的输入输出是确保应用程序易用性的重要因素。