看完C#视频后,虽然对C#有了宏观上的把控,但仍有许多地方特别的模糊。下面就以一个小程序(helloword)来引出C#结构的学习!
第一步:新建项目
第二步:在主函数下输入代码:Console.WriteLine("helloworld");
using System; //对其它命名空间的引用
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace notepad //使用namespace定义本段代码的命名空间
{
class helloworld //class关键字定义类
{
public static void Main() //Main定义主函数,即程序入口(在此方法下输出数据)
{
Console.WriteLine("helloworld"); //输出“helloword”
}
}
}
一、程序结构介绍
C#程序结构大体可以分为注释、命名空间、类、Main方法、标识符、关键字和语句。
1、注释
作为一名好的程序员,我们必须养成良好的注释习惯。在我们的代码中,无论是函数,还是变量我们都需要写出相应的注释。C#中的三种注释:
- // 行注释
namespace notepad //使用namespace定义本段代码的命名空间 { class helloworld //class关键字定义类 { public static void Main() //Main定义主函数,即程序入口(在此方法下输出数据) { Console.WriteLine("helloworld"); //输出“helloword” } } }
- /* */ 块注释
/* 在此方法下,输出“helloword” public static void Main() { Console.WriteLine("helloworld"); } */
- /// XML注释
可扩展标记语言(Extensible Markup Language, XML),用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。
2、命名空间
如同名字一样的意思,NameSpace:名字空间,之所以出来这样一个东西,是因为人类可用的单词数太少,并且不同的人写的程序不可能所有的变量都没有重名现象,对于库来说,这个问题尤其严重,如果两个人写的库文件中出现同名的变量或函数(不可避免),使用起来就有问题了,为了解决这个问题,引入了名字空间这个概念,通过使用namespace xxx;你所使用的库函数或变量就是在该名字空间中定义的.这样一来就不会引起不必要的冲突了.命名空间是用来组织和重用代码的编译单元。
现在我只能从表面上去理解命名空间,以后的理解会深刻些,再好好总结,大家可以先看看下面这篇博客,进而更好的理解命名空间。
博客借鉴:http://blog.163.com/zxhtest@126/blog/static/1305068812011584555886/
http://blog.csdn.net/sunliduan/article/details/8471640
C#中的各个命名空间就好像是一个存储了不同类型的仓库,而Using指令就好比是一把钥匙,命名空间的名称就好比仓库的名称,可以通过钥匙打开指定名称的仓库,从仓库中获取所需的物品。
using 指令的基本形式为:
Using 命名空间名
3、类
类是一种数据结构,它可以包含数据成员,函数成员和嵌套类型,类支持继承。类是对象概念在面向对象编程语言中的反映,是相同对象的集合,类描述了一系列在概念上有相同的含义的对象,并为这些对象同一定义了编程语言上的属性和方法。例如:车是一个类,自行车、汽车、火车也是类。但是他们的具体的属性和方法可能不完全相同。
在C#中通过使用Class关键字来声明类,声明形式如下:
[类修饰符] Class [类名] [基类或接口]
{
[类体]
}
例如:
ClassMyClass
{
}
4、Main主函数
C#Main()是C#应用程序的入口点,执行这个函数就是执行应用程序。也就是说,在执行过程开始时,会执行Main()函数,在Main()函数执行完毕时,执行过程就结束了。
日常生活中,要完成一件复杂的功能,我们总是习惯把“大功能”分解为多个“小功能”以实现。在C++程序的世界里,“功能”可称呼为“函数”,因此“函数”其实就是一段实现了某种功能的代码,并且可以供其它代码调用。
一个程序,无论复杂或简单,总体上都是一个“函数”;这个函数就称为“main函数”,也就是“主函数”。比如有个“做菜”程序,那么“做菜”这个过程就是“主函数”。在主函数中,根据情况,你可能还需要调用“买菜,切菜,炒菜”等子函数。
(1) C# Main函数的四种情况:
static void Main() {
}
②. static int Main()
{
}
③. static void Main(string[] args)
{
}
④. static int Main(string[] args)
{
}
注意事项:
1.主程序Main函数一共有以上四种版
2.一个程序中不能有两个以上的Main函数,有且只有一个
3.Main函数只能返回int类型,如果返回1,则从命令行调用不成功。否则成功
4.在命令行传输参数时,存放在string数组args中。使用Length属性来测试输入参数的个数。
5.使用foreach语句来检索所有的参数
6.程序入口主要供其他程序来执行本程序功能
(2)main方法的3种修饰符:
- public 声明一个公共的方法,公共的方法可以在类的外部访问
- static 声明一个静态的方法,静态的方法可以直接调用,必须是在main函数的类中,如果声明的静态的类你就可以不用new关键字来重定义了。
- void 声明一个没有返回值的方法
5、标识符和关键字
标识符
标识符是在程序中用来表示事物的单词,它有3个命名规则
(1)标识符必须只能有数字,字母和下划线组成。
(2)标识符必须以字母或者下划线开头,不能以数字开头。
(3)标识符不能是关键字。
注:C#中的标识符是严格区分大小写的,即ABC,和abc是不相同的。
关键字;
第(3)标识符不能是关键字,那么什么是关键字呢?关键字是在C#中具有特殊意义的单词,它们被C#用来设定为保留字,不能随意使用,在微软的MSDN中,它给出的定义是:
关键字是对编译器具有特殊意义的预定义保留标识符。它们不能在程序中用作标识符,除非它们有一个 @ 前缀。例如,@if 是一个合法的标识符,而 if不是合法的标识符,因为它是关键字。
也就是说,关键字是标识符,只不过它是一个有特殊意义的标识符,是编译器预定义的,用户不能随意使用一个关键字作为自定义的标识符以免产生错误,如class是一个关键字,编译器遇到这个词,就将其当作是一个类class,如果你自定义了一个变量叫做class,显然编译器是不认的,它还是认为class是一个类的声明,这样就产生了不必要的错误,所以绝大数情况下不要随意使用关键字,如果非要使用关键字作为一个标识符那么就在关键字前面加@吧。可,还是强烈建议不要这样用
6、语句
每门语言都有它自己的主体部分,那就是自己的语句。语句可以声明局部变量或常熟、调用方法、创建对象或将值赋给变量,语句通常以分号终止。
上述例子中的 Console.WriteLine("helloworld"); //输出“helloword”就是C#语句,通过此语句来实现我们要的功能。