1.2 创建第一个C#应用程序
计算机中顺利安装Visual Studio以后,就可以开始编写你的第一个C#程序。因为VSTO是C#的一种项目类型,因此在学习VSTO之前,首先应该学会最基本的C#程序的编写和调试技巧。
最基础的C#程序要数控制台应用程序和Windows窗体应用程序这两种项目类型。分别介绍如下。
■1.2.1 控制台应用程序
控制台应用程序是最基本的C#项目,程序在运行期间,输入和输出都在一个黑屏窗口中进行操作。
启动Visual Studio 2012,单击菜单【文件/新建/项目】,在新建项目对话框中,依次选择【模板/Visual C#/Windows/控制台应用程序】,项目名称重命名为“ConsoleApplication20160629”,单击“确定”按钮,如图1.4所示。
图1.4 创建控制台应用程序
双击解决方案资源管理器中的Program.cs,打开这个类模块,编辑代码如下:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace ConsoleApplication20160629 8 { 9 class Program 10 { 11 static void Main(string[] args) 12 { 13 Console.Write("Hello , C#"); 14 Console.ReadKey(); 15 } 16 } 17 }
控制台应用程序的程序入口是Program类的Main函数。因此,编辑代码后,按下快捷键【F5】,输出结果,如图1.5所示。
图1.5 控制台应用程序输出窗口
此时,在键盘上按下任何键,黑屏窗口消失,调试结束。
注意 在C#中,单步调试代码的快捷键是【F11】。
1. Console类
System.Console类表示控制台应用程序的标准输入流、输出流和错误流。Console类最常用的方法如表1.2所示。
表1.2 Console类常用方法
2.接收用户输入
使用Console.ReadLine方法,可以读取用户输入的内容,在下面的范例中当用户输入一个英文句子,按下回车后,在控制台中输出相应的大写字符串。
修改Main函数中的代码为:
1 static void Main(string[] args) 2 { 3 string nm = Console.ReadLine(); 4 Console.WriteLine(nm.ToUpper()); 5 Console.ReadKey(); 6 }
上述代码中,nm是一个字符串变量,接收用户的输入。ToUpper是字符串的一个转换函数,将字符串转换为对应的大写内容。
程序的执行效果,如图1.6所示。
图1.6 接收用户输入
3.输出结果到控制台
用于结果输出的方法有Write和WriteLine,这两个方法的不同之处在于,后者输出结果后自动换行,而Write则会在上一个结果之后继续输出。
1 static void Main(string[] args) 2 { 3 Console.Write("白日依山尽,"); 4 Console.Write("黄河入海流。"); 5 Console.Write("欲穷千里目,"); 6 Console.Write("更上一层楼。"); 7 Console.WriteLine("\n"); 8 Console.WriteLine("锄禾日当午,"); 9 Console.WriteLine("汗滴禾下土。"); 10 Console.WriteLine("谁知盘中餐,"); 11 Console.WriteLine("粒粒皆辛苦。"); 12 Console.ReadKey(); 13 }
上述代码在控制台输出了两首古诗,第一首使用Write输出,四句古诗输出在一行中,并没有换行,“Console.WriteLine(“\n”)”;这一句,表示在两首古诗之间输出一个空白行,如图1.7所示。
图1.7 输出结果到窗口
程序调试完毕后,单击【文件/关闭解决方案】。
■1.2.2 Windows窗体应用程序
与控制台应用程序相比,Windows窗体应用程序允许使用窗体和控件,可以做出更美观的界面,完成更复杂的编程任务。
启动Visual Studio,单击菜单【文件/新建/项目】,在新建项目对话框中,依次选择【模板/Visual C#/Windows/Windows窗体应用程序】,项目名称重命名为“WindowsForms Application20160629”,单击“确定”按钮,如图1.8所示。
图1.8 创建Windows窗体应用程序
在Visual Studio中,自动打开Form1的设计视图,从控件工具箱中拖动一个button控件到Form1,如图1.9所示。
图1.9 窗体设计视图
双击窗体空白区域,进入窗体的Load事件代码区域;然后回到设计视图,双击but ton1,编写按钮的单击事件,Form1.cs的完整代码如下:
1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System.Threading.Tasks; 9 using System.Windows.Forms; 10 11 namespace WindowsFormsApplication20160629 12 { 13 public partial class Form1 : Form 14 { 15 public Form1() 16 { 17 InitializeComponent(); 18 } 19 20 private void Form1_Load(object sender, EventArgs e) 21 { 22 MessageBox.Show("Hello, Form"); 23 } 24 25 private void button1_Click(object sender, EventArgs e) 26 { 27 this.Text = System.DateTime.Now.ToString(); 28 } 29 } 30 }
启动调试后,在窗体显示之前,跳出一个对话框,显示“Hello, Form”,单击窗体上11的按钮,会看到窗体的标题文字变为当前系统时间。
注意 MessageBox用于显示一个对话框,使用该语句的模块顶部必须写上“using Sys tem.Windows.Forms; ”这条指令。
■1.2.3 生成可执行文件
C#程序不仅可以在开发计算机上调试运行,也可以生成可执行文件,然后把扩展名为.exe的可执行文件发送到其他计算机直接运行使用。
在C#项目中,每当重新调试运行后,计算机总是自动生成可执行文件,对于上述窗体应用程序,可以打开如下路径找到最后生成的可执行文件:
…\Window sFormsApplication20160629\WindowsFormsApplication20160629\bin\Debug该路径下的“WindowsFormsApplication20160629.e xe”就是这个项目的可执行文件。
除了窗体应用程序以外,其他的C#项目类型最后生成的结果文件也均在Debug或者Release文件夹中。