示例一:

解决方案:ConsoleApplication

项目名称:ConsoleApplication

文件名:Program.cs

#region Using directives
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
// Output text to the screen.
Console.WriteLine("The first app in Brginning C# Programming!");
Console.ReadKey();
}
}
}
#endregion

/*
*现在不仔细研究这个项目中使用的代码,而关心如何使用VS启动和运行代码。VS做了许多工作,大大简化了编译和执行代码的过程。例如,创建一个新项目可以像前面那样使用文件|新建|项目...菜单项,也可以按下Ctrl+Shift+N,还可以单击工具栏上相应的图标。
*同样,代码也可以用多种方式编译和执行。可以选择调试|启动调试菜单项,也可以按下一个快捷键(F5),或者使用工具栏中的图标。使用调试|开始执行(不调试)菜单项(也可以按下Ctrl+F5)还可以以非调试模式运行代码,使用生成|生成解决方案或F6可以编译项目但不运行它(打开或关闭调试功能)。注意,执行项目但不调试,或者编译项目可以使用工具栏中的图标进行,只是这些图标在默认情况下没有显示出来。编译好代码后,运行生成的.exe文件,就可以执行代码。也可以在命令行提示窗口中执行,为此,应打开一个命令行提示窗口,把目录改为F:\learning\ASPNET\BegVCSharp\Chapter2\ConsoleApplication\bin\Debug\,输入ConsoleApplication,并按下回车键。
*这里要注意的一点是,控制台窗口会在执行完毕后立即关闭,这样就无法看到运行的结果。为了解决这个问题,使用
*Console.ReadKey();
*告诉代码在结束前等待按键。
*/

示例二:

解决方案:WindowsApplication

项目名称:WindowsApplication

文件名:Form1.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("The first Windows app in the book!");
}
}
}

文件名:Form1.Designer.cs

namespace WindowsApplication
{
partial class Form1
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows 窗体设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(0, 0);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(75, 23);
this.button1.TabIndex = 0;
this.button1.Text = "Click Me";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(292, 266);
this.Controls.Add(this.button1);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Button button1;
}
}

/*
*VS完成了许多工作,使我们能不费吹灰之力就可以完成一个实用的Windows应用程序的创建,这个应用程序与其他窗口的行为方式相同——可以移动、重新设置其大小、最小化等。我们不必编写任何代码,它就可以工作。双击按钮,VS就知道我们想添加一些代码,当运行应用程序时,用户单击该按钮,就执行我们编写好的代码。只要提供了这段代码,就可以得到按钮单机的所有功能。
*当然,Windows应用程序不仅限于带有按钮的普通窗体。如果看看工具箱,就会看到一整套用户界面构成块,其中一些用户可能很熟悉,但另外一些则不太熟悉。他们使用起来都非常简单,可以节省许多时间和精力。
*应用程序的代码在Form1.cs中,看起来并不复杂。解决方案资源管理器窗口中其他文件的代码也不太复杂。开发环境生成的代码在默认情况下是隐藏的,他们都与窗体上控件的布局有关。这就是为什么可以在窗口的设计视图中查看代码的原因,而设计视图正是这些布局代码的可视化转换。按钮就是可以使用的一种控件,同样,也可以使用工具箱上所有Windows窗体部分中的其他UI构成块。
*下面把按钮作为一个控件实例,详细解释一下。使用窗口中的标签,切换回Form1.cs[设计],单击按钮,选择它。此时,屏幕右下角的属性窗口就会显示按钮控件的属性,确保应用程序当前没有在运行,向下滚动到Text属性,它目前设置为button1,把其值改为ClickMe。
*在Form1中,按钮上的文本应反映这个变化。
*这个按钮有许多属性,从按钮颜色和大小的简单格式化,到某些模糊设置(如数据绑定设置,它可以简历与数据库的链接),应有尽有。如上所述,改变属性通常会直接改变代码,这也不例外。但如果切换回Form1.cs的代码视图,就会发现代码没有变化。
*要查看修改的代码,需要查看上面提及的隐藏文件。为了查看这个文件,需要在解决方案资源管理器窗口中单击显示所有文件图标,就会显示几个现在不需要考虑的额外文件和文件夹,但更重要的是这样做可以扩展Form1.cs节点。打开Form1.Designer.cs节点,双击这个文件,就可以查看其中的内容。
*匆匆一瞥可能注意不到代码中哪些地方反映了按钮属性的改变,这是因为C#代码中处理窗体上控件的布局和格式化的部分被隐藏了(毕竟,如果有了结果的图形显示,就不需要查看代码了)。
*VS使用代码突出显示系统来显示这部分C#代码。
*在代码的左边(如果已显示行号,就在行号的旁边),注意有一些灰色的线条,其上有+和-号的方框。这些方框可用于展开和折叠代码区域。在文件的底部,有一个带+号的方框,它对应代码主体的“Windows窗体设计器生成的代码”。这个标签的基本含义是“这里有一些VS生成的代码,用户不需要知道”。如果愿意,可以查看改变按钮属性的代码,只要单击带有+号的方框,代码就会显示出来,在某处地方应有如下代码:
*this.button1.Text="ClickMe";
*不必过多地考虑这里使用的语法,我们可以看到在属性窗口中输入的文本直接显示在代码中。
*在编写代码时,这种突出显示代码的方式非常方便,我们可以扩展和收缩其他许多区域,而不仅仅是正常情况下隐藏的代码段。查看一本书的目录,有助于快速了解该书的内容,查看一组收缩的代码段,则非常便于蓼蓝大量的C#代码。
*/