接着上一讲,我们新建了一个名为"CSharpBasic"的控制台工程,首先看一下VS中的代码编辑区域,默认打开的是Program.cs这个文件,VS为我们自动添加的代码如下(由于我是用VS2008新建的,所以引入的命名空间与VS2005有所不同):
下面我们来讲解一下这个最基本的程序代码。
1、using语句:在这个文件的最上部,看到有4行以using打头的代码,它们代表的意义为引入”using“后面的命名空间,那么什么是命名空间呢。首先来看看MSDN中的解释:
命名空间是一种组织 C#
程序中出现的不同类型的方式。命名空间在概念上与计算机文件系统中的文件夹有些类似。与文件夹一样,命名空间可使类具有唯一的完全限定名称。一个 C#
程序包含一个或多个命名空间,每个命名空间或者由程序员定义,或者作为之前编写的类库的一部分定义。
什么意思呢?我们用比较通俗的话来解释一下吧,比如 一个屋里有两个人,名字分别是”李明“和”张明“,那如果我们直叫”明“,他们俩就不知道我们叫的是谁,这是我们就要叫全名,比如”李明“,这样,李明就能知道我们叫的是他,名”明“就好比C#的类,姓”李“和”张“就好比是不同的命名空间,当只有一个叫做”明“的人的时候,我们可以只叫”明“即可,但如果同时存在好几个”明“的时候,我们就要叫他们的全名了。可能有人会说了,那如果有好几个人都叫”李明“咋办?同样的道理,这时候,”李明“就是一个类,我们就要在这个类之前再加一个命名空间,比如”三年二班的”李明,“四年一班”的李明,等等……如果还在一个班里,那就再加上其它的命名空间,如:坐第几排第几列的,等等……直到它们的全名唯一为止。叫全名肯定是比较妥当的了,但要每一个都写全名,那会相当复杂和麻烦的,所以,using 语句就帮了我们一个大忙,可以把要用到的命名空间名称写到using后面,那么在这个cs文件中,要使用到这个命名空间下面的类时,直接输入类名即可,而不用写全名了,当然,如果碰到引入的命名空间下有类名重复的情况的时候,在用这些类时,还要把它们的全名都写上,不然,编译器无法知道你调用的是哪个类。.net类库中已经预先定义了一部分命名空间了,如这个例子的头四行,就是.net类库预定义的命名空间。也就是说,我们可以在这个文件里直接写System,System.Collections.Generic,System.Linq,System.Text这四个命名空间下的类,而不用再写命名空间的名称了。那么,using是否只能写在cs文件的最顶头呢?我们来试试把它们移动一下位置,把它们移到最下面:
运行程序,看到编译失败,提示错误: using 子句必须位于命名空间中定义的所有其他元素之前(外部别名声明除外)
看来是不行哦,我们还是老老实实地写在namespace之前吧~~
2、本程序的命名空间:知道了命名空间的作用之后再来看看namespace CSharpBasic这句代码,这句话的意思是为下面的类Program定义一个命名空间,名称为CSharpBasic,这个是VS根据我们的工程名为我们自动创建的,我们当然可以将其改为我们自己喜欢的名字,一般都是以本公司的名称或工程的类型来命名的,这里我起名为ojlovecd。
3、类名称:啥是类?先来看看MSDN对类的定义:类是 C#
中功能最为强大的数据类型。像结构一样,类也定义了数据类型的数据和行为。然后,程序员可以创建作为此类的实例的对象。与结构不同,类支持继承,而继承是面向对象编程的基础部分。
去除定状补,就变成了“类是数据类型”,那什么是数据类型?再来看看MSDN对数据类型的定义:
数据类型概述
类型可描述为:
-
内置数值类型(如 int 或 char),或
-
用户定义类型(如 class 或 interface)。
-
匿名类型,它由一组封装在无名称引用类型中的公共属性组成。
-
类型还可以定义为:
-
值类型(C#
参考)(用于存储值)。这些类型包括基元数值类型、枚举和结构,还包括这几种类型的可以为 null 的版本。
-
引用类型(C#
参考)(用于存储对实际数据的引用)。这些类型包括类、接口、数组和委托。
C# 是强类型语言;因此每个变量和对象都必须具有声明类型。啥意思呢?也就是说,在C#里面,你使用的任何变量或对象,都必须是某一个数据类型,不存在没有数据类型的变量或对象。这就好比这世界上某一个新生命的诞生,它肯定是属于某一个物种的。类型包括.net类库内置的数值类型,用户自定义类型和匿名类型(匿名类型为C#3.0新增的特性),我们这里的类,就属于用户自定义类型,关于类的详细介绍,我们将在以后进行。跟命名空间一样,类名也是我们可以自由更改的,它可以和命名空间的名称起同一个,我们这里把Program也改成ojlovecd。
4、程序入口点Main方法:“函数”一词在C#里已经改名为了“方法”,Main方法是C#程序的入口点。运行程序的时候,系统将会调用Main方法来启动我们的应用程序,那么,Main方法能否改名呢?我们来试试,把Main方法也改成ojlovecd试试:
运行代码,程序出错,错误为: “ojlovecd”: 成员名称不能与它们的封闭类型相同
看错误信息,是告诉我们成员的名称不能与类名相同,那我们再改个别的名称看看,比如说改成CSDN:
再次运行,还是出错,错误为: 程序“C:\Documents and Settings\区健\My Documents\Visual Studio 2008\Projects\CSharpBasic\CSharpBasic\obj\Debug\CSharpBasic.exe”不包含适合于入口点的静态“Main”方法
看来是不行的,也就是说程序不仅必须包括Main方法,而且Main方法还必须是静态的。那什么是静态的?就是关键字static所修饰的成员,有什么作用呢?我们以后再讲。
把CSDN改回Main,我们在Main方法体(就是用话括弧{}包含的那部分)中,输入如下代码:
按下Ctrl+F5,就可以生成我们的第一个应用程序了,如下图:

至此,我们的第一个应用程序创建并运行成功了,在下一讲中,我们将会讲解关于这个程序的更多有用信息。
分享到:
相关推荐
标题 "C#-Helloworld" 暗示我们即将探讨的是使用C#编程语言实现一个基础的“Hello, World!”程序。在C#中,这是一个经典的入门示例,用于介绍如何编写并运行简单的代码。 首先,C#(读作"C sharp")是由微软开发的...
在"C#入门工程,Helloworld,Helloworld-WinForm"这个项目中,我们可以看到一个初学者如何开始学习和使用C#进行编程。 1. **C#基础** - **语法结构**:C#类似于C++和Java,有着严格的类型系统,支持类、接口、枚举...
serialPort.WriteLine("Hello, world!"); // 发送字符串 serialPort.Write(new byte[] { 0x48, 0x65, 0x6C, 0x6C, 0x6F }); // 发送字节数组 serialPort.Close(); // 关闭串口 ``` 至于接收数据,`SerialPort`类...
传智播客C#基础和Winform-笔记及案例-苏坤2011上课笔记.doc
### C# HelloWorld 程序解析 #### 一、引言 HelloWorld 是学习任何编程语言时最常见的第一个程序。它不仅简单易懂,而且能够帮助初学者熟悉编程环境的搭建和基本语法。本文将深入分析一个用 C# 编写的 HelloWorld ...
c#基础知识教材-asp-net经典教材.doc
在这一部分,我们介绍了一个非常基础的C#程序,用于输出“HELLOWORLD”。这里没有使用任何命名空间或者复杂的类结构。 ```csharp public class HelloWorld { public static void Main() { System.Console....
- `public class HelloWorld`:定义了一个公共类`HelloWorld`。 - `public static void Main(string[] args)`:这是程序的入口点。每个C#控制台应用都必须包含这样一个主方法。`static`关键字表示这是一个静态方法,...
第一部分 C#语言概述 第二部分 C#程序设计基础 第三部分 面向对象的C# 第四部分 深入了解C# 第五部分 附录
C#的基础型教程。PDF文件格式,更容阅读。
在IT领域,C#是一种广泛使用的编程语言,尤其在开发Windows桌面应用、游戏以及服务器端应用时。在本场景中,我们关注的是如何利用C#与研华(Advantech)的PCI-1750卡进行数据交互。研华PCI-1750是一款高性能的多功能...
C#基础知识学习(包括第1章-Visual C#程序设计基础,第2章-C#语言基础,第3章-面向对象程序设计,第4章-基于Windows Forms的程序设计,第5章-图形与动画,第6章-数据库应用开发,第7章-ASP.NET Web应用开发)
标题"C#-ymodem-update"指的是一个使用C#编程语言开发的YMODEM协议实现,主要功能是用于设备固件的升级,特别是针对bootloader的更新。YMODEM是一种流行的串行通信协议,用于在计算机之间传输文件,尤其是在低带宽和...
这个项目源码是使用C#编程语言实现的,旨在帮助开发者实现对多块电表的数据读取、解析以及统计功能。下面我们将详细探讨这个项目涉及的关键知识点。 1. C#编程语言:C#是由微软开发的一种面向对象的编程语言,广泛...
1. **C#基础语法** - **变量**:在C#中,我们需要声明变量来存储数据,如int(整型)、double(双精度浮点型)和string(字符串)。在计算器程序中,我们可能需要声明变量来保存用户输入的数字和运算符。 - **控制...
本教程将深入探讨Objective-C 2.0与Cocoa Foundation的结合,从经典的"Hello, World!"程序开始,逐步揭示这门语言的强大之处。 "Hello, World!"是所有编程旅程的传统起点,它展示了语言的基本语法和输出功能。在...
标题"C#使用multipart/form-data示例"表明我们将讨论如何在C#中构建一个处理`multipart/form-data`的程序。由于没有现成的库可用,我们需要手动处理请求体的组装和解析。以下是一个基本的步骤和相关知识点: 1. **...
在IT行业中,尤其是在自动化测试、数据采集和仪器控制领域,C#与NI-VISA的结合应用是常见的技术手段。本文将深入探讨如何使用C#语言通过NI-VISA接口来控制仪器,实现高效、准确的设备通信。 首先,我们需要了解NI-...
C#源码系列7---一个开源ERP源码(C#)
C#基础笔记-汇总 记录的笔记,简介 数据类型 超级长的例子 转