大家好,欢迎来到IT知识分享网。
C#程序结构包括:注释块、命名空间、类、方法、标识符、关键字、语句
命名空间:
命名空间(Namespace)就是把功能相同的类放到一块,用来组织和重用代码,C#程序结构中每个命名空间相当于一个逻辑结构的仓库,C#程序是利用各种命名空间组织起来的,而实际上命名空间能将同名的类分开。它好比一个文件夹,把不同性质的内容放到不同文件夹里面,每一个文件夹里面还可以有很多文件夹,形成分层结构,即使两个文件名重名,你也能够通过文件夹找到它们,就不会混淆不清了。先来看看命名空间代码:
//System命名空间是系统已经定义好的命名空间,包含用于定义常用值和引用数据类型、事件和事件处理程序、接口、特性以及处理异常的基础类和基类。
using System;
//引用System.Data表示你需要使用数据、数组,可以直接使用数组类型,而不需要再添加前缀
using System.Data;
//用户自己定义的命名空间
using namespace2;
//System.Collections.Generic命名空间,包含处理集合的泛型类型
using System.Collections.Generic;
//可以使用类似SQL的语法来查询数据
using System.Linq;
//using System.Text空间,包含与字符串处理和编码相关的类型
using System.Text;
//using System.Windows.Forms,使用窗体内置的各种控件、事件类
using System.Windows.Forms;
IT知识分享网
命名空间分为两类:用户定义的命名空间和系统定义的命名空间
用户定义的命名空间:就是用户自己在代码中定义的命名空间
系统定义的命名空间:你可以使用关键字using来调用系统已经定义好的命名空间
using System命名空间:是系统已经定义好的命名空间,包含用于定义常用值和引用数据类型、事件和事件处理程序、接口、特性以及处理异常的基础类和基类
using System.Data命名空间:引用System.Data表示你需要使用数据、数组,可以直接使用数组类型,而不需要再添加前缀。如果没有引用System.Data,当你需要定义一个数据表类型的变量需要加前缀:System.Data.DataTable dataTable = new System.Data.DataTable();如果引用了System.Data,则你就不用加前缀:DataTable dataTable = new DataTable();
using System.Collections.Generic命名空间:System.Collections.Generic命名空间,包含处理集合的泛型类型
using System.Linq命名空间:Linq是在.NET Framework 3.5 中才出现的技术,它提供支持使用语言集成查询 (LINQ) 进行查询的类和接口,借助于LINQ技术,你可以使用类似SQL结构化查询的语法格式来查询任何形式的数据,它的出现大大提高了程序查询和处理数据的能力和效率,对于一个数据库高手来讲,它的出现简直就是福音
using System.Text命名空间:using System.Text命名空间提供常用的字符串操作,包含与字符串处理和编码相关的类型
控制台应用程序:打开VS软件创建控制台应用程序,键入代码
IT知识分享网using System;
namespace namespace1//用户命名空间
{
class Program//用户定义的类,实现某一特定功能
{
static void Main(string[] args) //程序入口
{
Console.WriteLine("命名空间的学习和理解");//实现输出一条信息
}
}
}
运行程序:
这里面用到了System命名空间下的Console类,System中已经定义好了Console类,如果你不在前面使用using System,这里面就要用到它的完全限定名称了System.Console.WriteLine()
用户自己定义的命名空间中的类
using System;
using namespace2;//用户自定义的命名空间
namespace namespace1
{
class Program
{
static void Main(string[] args) //程序入口
{
p2 n = new p2();//对用户自己定义的类进行实例化
n.s1();//使用用户自己定义的类中的方法
}
}
}
namespace namespace2//用户自己定义的命名空间
{
class p2//用户自定义的类
{
public void s1()//用户自定义的类中的方法
{
Console.WriteLine("使用用户自己定义命名空间中的类");//输出一条信息,这里用到了系统命名空间中的Console类
Console.ReadLine();
}
}
}
运行程序:
如果你在前面不引用用户自定义的命名空间:using namespace2,程序就会报错:
类
C#的类,是一种数据结构,装着各种成员,它是C#语言的核心和基本构成模块,它的最大的特色是,用户不仅可以使用系统已经定义好的类,也可以使用用户根据自己需要自己定义的类。
当你在使用新的类之前,必须要事先声明这个类,声明类的关键字是class,上文就有声明p2类的代码:
IT知识分享网class p2//用户自定义的类
{
public void s1()
{
Console.WriteLine("使用用户自己定义命名空间中的类");
Console.ReadLine();
}
}
main方法
main方法是程序的入口处,C#程序中必须包含一个,而且是唯一的一个main方法,它也是一个类的成员,由于程序启动时,还没有创建类的对象,所以它必须是静态的,上面main方法的修饰符static表示main方法是一个静态方法,调用这个方法不能使用实例化对象,而是直接使用类名来调用,void表示这个方法没有返回值
static void Main(string[] args)
{
p2 n = new p2();
n.s1();
}
Console类的两个方法
C#环境下,在Console类中提供了两个输出字符串的方法:
Write方法:Console.Write不输出换行
WriteLine方法: Console.WriteLine输出换行
Console.WriteLine:
标识符和关键字
标识符就是系统或者用户自定义的类、方法或者变量的名称,上文的Console、namespace1、s1等都是标识符,标识符的书写有几个规则:
一是:标识符只能由数字、字母和下划线组成;
二是:它必须以字母或者下划线开头;
三是:它不能是关键字,所谓的关键字就是系统的保留字,上文的static、void和public都是关键字,这些关键字不能够命名标识符;
代码注释块
为了方便写的代码具有可读性,代码注释块是经常使用的,编译器在编译程序时不执行注释块中的内容,注释块有三种:
一是:单行注释,使用“//”;
二是:多行注释,使用“/*…*/”;
三是:给代码段添加说明,使用“///”给一段代码来添加说明
C#Windows窗体工作环境
C#工作界面有:工具箱、资源管理器、属性窗口和程序代码编辑区、菜单和工具栏等。
工具箱:
左侧的工具箱存放着多种控件,点击上面的Auto Hide图标,自动隐藏图标,工具箱就会固定到环境的左侧,可以更方便我们来取用各种控件:
控件按不同类别进行分类存放,Common Controls公共控件、Components组件、Printing打印和Dialogs对话框等多种类别:
资源管理器:
解决方案资源管理器在右上侧,解决方案名称会根据所创建的项目来产生,由于是Windows窗体应用程序,因此会产生跟窗体有关的程序,即与Windows窗体有关的文件:
属性窗口:
属性窗口提供窗体对象或控件的属性设置,通过属性窗口提供两种功能,即属性和事件。
你可以通过属性窗口,对窗体和加入窗体上的一切控件进行设置,而且这些需要设置的属性可以按照一定的的顺序进行排列,如按分类排序Categorized、按字母顺序Alphabetical、属性Properties和事件Events:
属性列表由相关属性名称组成,控件不同属性列表也不相同,当鼠标点击某一特定属性行时,则在属性窗口的最下方会简单提示该属性值所代表的意义,如BackColor下面就有提示信息The background color of the component,表示组件的背景颜色:
你可以通过点击事件Events来使属性窗口按事件分类来显示:
(1)单击字母顺序Alphabetical按钮;
(2)单击事件Events按钮,目的为某个事件编写程序代码;
(3)用鼠标点击某一事件,双击即进入程序代码编辑区,创建了此事件的程序段;
下面是对Click事件进行双击,进入程序代码编辑区,Click事件的简单提示Occurs when the component is clicked,就是当组件被单击的时候发生:
程序代码编辑区:
以Windows窗体来编写应用程序时,必须针对某一个控件对象来编写,如果要让窗体单击时执行一些操作,就得进入程序代码编辑区。
(1)选择窗体,找到属性窗口的Click事件:
(2)Click右侧显示Form1_Click事件,表示要在窗体上单击来触发的事件处理程序:
(3)用鼠标双击Form1_Click,则进入了程序代码编辑窗口,框住的区域是新加入的Form1_Click事件:
创建窗体界面
在窗体上加入一个label控件和两个button控件,label控件负责你想要显示的内容,button控件一个是用来触发事件让label控件显示相应内容,另一个是触发事件让程序关闭。
先介绍几个常用的控件:
Label控件:它是标签控件,可以用来显示窗体界面上的文字
Textbox控件:这是个文本框控件,它能够让用户输入内容
Button控件:我们最熟悉的按钮控件,单击后可以触发某个事件过程,我们程序执行的触发多数靠它来完成
无论是窗体还是控件,在windows窗体应用程序中都是对象,所以都可以对这些对象进行属性的设置。
Form1:设置text和font属性,text可以让窗体在标题栏显示相应的内容,font可以设置字体的颜色
Label:设置name和forecolor属性,name是标签的名称,方便我们在程序中使用它,forecolor是标签的前景色
Button:设置name和text属性,name是给button按钮一个名称,text可以在button按钮上显示相应的内容
在窗体上加入控件:
加入控件有两种方法:
①你可以通过双击控件进行添加,控件自动显示到窗体的左上方;
②你也可以对控件进行拖拽到窗体的任意位置上;
当你用上面的方法将控件放到窗体上后,可以对控件进行布局的排列和对齐:
①可以通过窗体上的参考控制线进行对齐和排列;
②也可以利用布局工具栏;
设置控件外观:
每个加入到窗体中的控件都有各种各样的属性,在属性窗口以categorized分类进行显示,分类显示可以将性质相近的属性排列在一块,方便进行查找和定位:
与控件外观有关的属性有backcolor背景色、borderstyle框线样式、font字体、forecolor前景色,它们都在appearance外观下:
对label1标签控件进行设置,将borderstyle框线样式设置为单线,效果如下:
你也可以鼠标点击窗体后,对窗体上的字体大小等进行设置,包括窗体上的任何控件上的字体:
你也可以为label1选择字体颜色,在属性窗口对forcolor前景色进行相应色彩设置,色彩当中提供了三种,我们可以选择custom自定义样式,这里面的色彩比较多:
设置控件属性:
你还可以对控件的name和text属性进行更改,每个加入到窗体的控件都有name属性,当我们在编写程序代码时可以用到它的name名称,就是来识别不同的控件,这里面窗体的name是form1,上面的两个button控件的name分别是button1和button2,为了编写代码方便我们通常将name设置成符合实际意义的名称,而另一个text属性易与name相混淆,虽然他们看着很类似,其实它们有着本质上的区别,一个属于展现给用户的内容,一个是后台识别的id,它们都是通过属性窗口进行设置修改的。
Text属性设置:点击要修改text属性的控件→在appearance下找到text属性→键入要显示的文字内容,下面是对button和label的text属性进行修改和设置:
name属性设置:点击要修改name属性的控件→在design下找到name属性→键入控件的名称,下面是对button的name属性进行了修改和设置,可以看到显示的内容没变,只是其表征身份的名称发生了改变,我们在编写代码时用到的是“btnShow”,而不是“单击”:
编写程序代码并运行:
对控件的基本设置完成以后,我们就要加入程序代码,实现按钮的单击和结束功能,我们要实现的有两个功能:
1、点单击按钮,让label控件显示相应内容,也就是改变label的text属性
2、点结束按钮,结束并关闭程序
而上面这种通过程序代码响应或者处理的操作就是事件处理程序event handlers,其语法格式为:
private void 控件名称_事件(object sender,EventArgs e)
{
//程序语句
}
如果通过单击button按钮来实现,则语句为:
private void btnShow_Click(object sender,EventArgs e)
{
//程序语句;
}
这里面每个事件处理程序都有两个参数,sender提供触发事件的对象引用,e用来传递要处理事件的对象。
编写实现第一个功能的代码,双击button按钮进入代码编辑区,可以看到我们在编写代码时系统会有自动提示,这就大大方便了我们写代码的效率,从下拉列表中选择想要的对象或者属性即可:
最后完整的代码是:
再来编写实现第二个功能的程序代码,同理进入到窗体界面双击button结束按钮:
进入到了我们第二功能代码的编写区域:
这里面的按钮我们并没有为它重新命名,而是我们在创建按钮时使用自动创建的名称tutton2,这不会影响我们对程序代码的编写:
运行程序“Ctrl+F5”,点击“单击”按钮后label出现了相应的内容,单击结束则退出程序:
结语:有感兴趣的关注、收藏、点赞、转发
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/6763.html