第一个C#程序Hello World
一、编写第一个C#程序——Hello World
1. 启动Microsoft Visual Studio 2010。
2. 点击“文件”菜单,选择“新建”项,在弹出的子菜单中选择“项目”命令。
3. 弹出“新建项目”对话框。
4. 在“最近的模板”下面点击“Visual C#”项,在中间的“模板”窗口中选择“控制台应用程序”项,在底部“名称”文本框中输入项目名称“HelloWorld”,点击“浏览”按钮,选择项目保存的位置“F:\VStudio2010\”。
5. 点击“确定”按钮,弹出下面的“HelloWorld”窗口:
6. 在static void Main(string[] args)
{下面添加如下的代码(以“//”开头的是注释):
// 第一个C#程序Hello World -
// Console类位于System命名空间,表示控制台应用程序的标准输入流、输出流和错误流
// Console.WriteLine方法将指定的数据(后跟当前行终止符)写入标准输出流
// Console.ReadLine方法使程序暂停下来,直到按下回车键才会继续运行
Console.WriteLine("Hello World!");
Console.ReadLine();
7. 添加好代码的窗口如下所示:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace HelloWorld
{
class Program
{
static void Main(string[] args)
{
// 第一个C#程序Hello World -
// Console类位于System命名空间内,表示控制台应用程序的标准输入流、输出流
// 和错误流
// Console.WriteLine方法将指定的数据(后跟当前行终止符)写入标准输出流
// Console.ReadLine方法使程序暂停下来,直到按下回车键才会继续运行
Console.WriteLine("Hello World!");
Console.ReadLine();
}
}
}
注释可以省略!
8. 选择“文件”菜单,点击“全部保存”命令,或者按下Ctrl+Shift+S快捷键,保存所有文件。
9. 选择“调试”菜单,点击“启动调试”命令,或者按下F5键,运行程序。
10. 运行结果如下:Hello World!
11. 按下回车键(Enter),结束程序的运行。
至此,第一个C#程序——Hello World编写成功!
二、代码分析
C#语言的程序结构包括程序、命名空间、类型、成员和程序集。
?程序:C#程序包含一个或多个源文件。每一个C#程序由一个或多个类组成。所有的C#程序都必须封装在某个类中。
?命名空间:程序中声明的类型、类型中包含的成员都能够被组织到命名空间中。
?类型:类和接口是类型的例子。
?成员:字段、方法、属性和事件是成员的例子。
?程序集:程序集的文件扩展名一般是.exe(应用程序)或者.dll(类库)。当C#程序被编译时,它们会被打包到程序集中。
1. 导入命名空间
using System; // 命名空间
using System.Collections.Generic; // 子命名空间
using System.Linq; // 子命名空间
using System.Text; // 子命名空间
上述代码使用using指令导入命名空间,以便使用类型而不用再指定命名空间。编译器会在using指令指定的命名空间中查找没有在当前命名空间中定义,但是在代码中引用的类。
就是说,类必须位于命名空间中。要么它在导入的命名空间中;要么它在当前的命名空间中定义。
在Program.cs文件中使用using的原因是下面要使用一个库类System.Console。using System指令允许把这个类简写为Console。几乎所有的C#程序都使用System命名空间中的类,所以所有的代码文件都包含有using System;语句。
2. 声明命名空间
namespace HelloWorld
{
}
使用namespace关键字声明了一个命名空间范围。其后花括号中的所有代码都被认为是在这个命名空间中。
3. 命名空间的总结
命名空间有两种,一种是系统命名空间,一种是用户自定义命名空间。
一个源程序文件中可以包含多个命名空间;同一命名空间可以在多个源程序文件中定义。命名空间可以嵌套。同一命名空间中不允许定义重名的类型(类或者方法等)。
同名的两个类如果在不同的命名空间中,相互之间是不会混淆的。
1)命名空间的引用:
using 命名空间名称;一般写在源文件的最前面。
2)命名空间的声明:
namespace 命名空间名称
{
}
3)在程序中访问其它命名空间中的方法:
<Namespace>[.<Subnamespace>].类型例如:
System.Console.WriteLine("edu.南方网景");在这里,C#用点“.”操作符表示了语句的从属关系。
?System:命名空间
?Console:类
?WriteLine:方法
4. 声明类
class Program
{
}
使用class关键字声明一个类,类的名称为Program。因为该类位于HelloWorld命名空间中,所以该类的完整名称应该是HelloWorld.Program。
类的声明包括class关键字,后面是类名和一对花括号。与类相关的所有代码都应放在这对花括号中。
5. 声明Main方法
static void Main(string[] args)
{
// 应用程序功能代码实现位置
}声明类的Main方法:
?static:返回值的类型。
?void:返回值。
?Main:方法名称。
?string[] args:“Main”方法的参数。这是一个字符串数组。
“Main”方法是每一个C#应用程序的入口,C#要求每个程序必须且只能有一个“Main”方法,“Main”方法必须放在任意一个类中。对于被调用的“Main”方法来说,它所在的类不需要被实例化。
如果有多个“Main”方法,编译器就会返回一个错误!
“Main”方法的声明与结构如下:
方法一:不带参数,返回void
static void Main()
{
// ...
}
方法二:不带参数,返回int
static int Main()
{
// ...
return 0;
}
方法三:带参数,返回void
static void Main(string[] args)
{
// ...
}
方法四:带参数,返回int
static int Main(string[] args)
{
// ...
return 0;
}
6. 语句
Console.WriteLine("Hello World!");
Console.ReadLine();上面的代码调用了System.Console类的WriteLine()方法和ReadLine()方法。
语句就是C#应用程序中执行操作的指令。C#中的语句必须用分号“;”结束。可以在一行中书写多条语句,也可以将一条语句书写在多行上。
7. 花括号语法
在C#中,花括号“{”和“}”是一种范围标志,是组织代码的一种方式,用于标识应用程序中逻辑上有紧密联系的一段代码的开始与结束。
花括号可以嵌套,以表示应用程序中的不同层次。
8. C#注释
C#注释分为两种:单行注释和多行注释。
1)单行注释
用两个正斜线来表示“//”:
// 右边的文字都是注释,直到一行结束。在“//”的后面不能使用反斜杠“\”。
2)多行注释
以“/*”开始,以“*/”结束:
/* 这是
多行
注释
......
*/多行注释不能嵌套,即在分割符“/*”和“*/”之间不能再有分割符。
3)文档注释
在Visual Studio的开发工具中,目前只有C#编译器能够将注释转换成XML文件。方法是使用“///”符号。只要加上这个注释符号和代表XML元素的标记,就可以将注释转换成XML文件。所以文档注释又可以称为XML注释。
比如:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace HelloWorld
{
/// <summary>
/// 生成XML注释文件范例
/// </summary>
class Program
{
/// <summary>
/// Program类,打印Hello World!
/// </summary>
/// <param name="args">命令行参数</param>
static void Main(string[] args)
{
// Console类位于System命名空间内,表示控制台应用程序的标准输入流、输出流
// 和错误流
// Console.WriteLine方法将指定的数据(后跟当前行终止符)写入标准输出流
// Console.ReadLine方法使程序暂停下来,直到按下回车键才会继续运行
Console.WriteLine("Hello World!");
Console.ReadLine();
}
}
}注意:定义的XML元素一定要遵守XML的格式。如果编译成功,我们就可以找到HelloWorld.XML文件。
附:在Visual Studio 2010中设置生成XML注释文件的步骤:
以项目HelloWorld为例,点击“项目”菜单,选择“HelloWorld 属性”命令。如下图所示:
选择“HelloWorld 属性”命令
选择“HelloWorld 属性”命令
打开“HelloWorld”窗口。如下图所示:
“HelloWorld”窗口
“HelloWorld”窗口
在左边点击“生成”项,在右边选择“XML文档文件”项即可。XML文件名会自动填写,当然也可以自行修改。
第一个C#程序Hello World的更多相关文章
- DirectX游戏编程(一):创建一个Direct3D程序
一.环境 Visual Studio 2012,DirectX SDK (June 2010) 二.准备 1.环境变量(如没有配置请添加) 变量名:DXSDK_DIR 变量值:D:\Software\ ...
- 第一个python程序
一个python程序的两种执行方式: 1.第一种方式是通过python解释器: cmd->python->进入python解释器->编写python代码->回车. 2.第二种方 ...
- 编写第一个MapReduce程序—— 统计气温
摘要:hadoop安装完成后,像学习其他语言一样,要开始写一个“hello world!” ,看了一些学习资料,模仿写了个程序.对于一个C#程序员来说,写个java程序,并调用hadoop的包,并跑在 ...
- 1.3 第一个C#程序
几乎没一门编程语言的第一个程序都叫“你好,世界”,所以先在visual studio 中创建一个Helloworld程序. 各部分的详细内容: Main方法是程序运行的起点,最重要的代码就写在Main ...
- 一个.net程序员的安卓之旅-Eclipse设置代码智能提示功能
一个.net程序员的安卓之旅-代码智能提示功能 过完年回来就决心开始学安卓开发,就网上买了个内存条加在笔记本上(因为笔记本原来2G内存太卡了,装了vs2010.SQL Server 2008.orac ...
- MFC-01-Chapter01:Hello,MFC---1.3 第一个MFC程序(02)
1.3.1 应用程序对象 MFC应用程序的核心就是基于CWinApp类的应用程序对象,CWinApp提供了消息循环来检索消息并将消息调度给应用程序的窗口.当包含头文件<afxwin.h>, ...
- Go! new Hello World, 我的第一个Go程序
以下语句摘自百度百科: Go语言是谷歌2009发布的第二款开源编程语言. Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全.支持并行进 ...
- 搭建java开发环境、使用eclipse编写第一个java程序
搭建java开发环境.使用eclipse编写第一个java程序 一.Java 开发环境的搭建 1.首先安装java SDK(简称JDK). 点击可执行文件 jdk-6u24-windows-i586. ...
- 第一个ruby程序
老实说不是很喜欢去讨论ruby和python的对比,似乎总是把两个语言放在对立的位置上,我觉得没有必要,同样是动态语言,同样是解释型脚本语言,很多特性都是互相影响的,语言本身也在不断进化,我们更应该关 ...
- Android Studio新建一个HelloWorld 程序(App)
Android Studio新建一个HelloWorld程序(App) 新建 或者直接启动程序(注:如果已有程序,此方法会直接打开最近一次关闭从程序) 更改App名 选择App运行平台 选择模板 更改 ...
随机推荐
- js字符串与数字之间的比较
//1.纯数字之间比较 console.log(1<3);//true //2.纯字符串比较,先转成ASCII码,按位依次比较 console.log("1"<&quo ...
- [转]jQuery调用ASPX返回json
本文转自:http://www.cnblogs.com/fire-phoenix/archive/2009/11/13/1614146.html 本文介绍如何在ASP.NET(ASP.NET/AJAX ...
- (转)linux应用之test命令详细解析
linux应用之test命令详细解析 原文:https://www.cnblogs.com/tankblog/p/6160808.html test命令用法. 功能:检查文件和比较值 1)判断表达式 ...
- 牛客网Java刷题知识点之父类中的私有内容,子类是否具备? 子类不可直接,但可间接访问父类中的私有内容?
不多说,直接上干货! 父类中的私有内容,子类是否具备? 答:不具备 子类不可直接,但可间接访问父类中的私有内容 这样情况,开发中不所见,但是,面试的时候,必考非常常见.
- kindeditor编辑区空格被隐藏,导致所见所得不一致的解决办法
1.修改kindereditor-all.js中的 var re = /(\s*)<(\/)?([\w\-:]+)((?:\s+|(?:\s+[\w\-:]+)|(?:\s+[\w\-:]+=[ ...
- java 通过反射获取和设置对象属性值
public static Object parseDate(Object object){ SimpleDateFormat sdf = new SimpleDateFormat("yyy ...
- 各种推导式<"一行能解决的事,为什么要用那么多行">
一.推导式 1.列表:[结果 for循环 条件筛选] 2.字典:{k:v for循环 条件筛选} 3.集合推导式{k for循环 条件筛选} ???为什么没有元组推导式 二.生成器表达式(元组表达式) ...
- js-对象的方法详解
Object.prototype 上的方法: constructor 返回创建该对象的构造函数 var arr = []; arr.constructor == function Array() { ...
- 【Android 界面效果47】RecyclerView详解
RecylerView作为 support-library发布出来,这对开发者来说绝对是个好消息.因为可以在更低的Android版本上使用这个新视图.下面我们看如何获取 RecylerView.首先打 ...
- c#数据类型和表达式
一.数据类型 值类型: 1.整数(没有小数) Byte:字节0~255 Char:一个字符 Int 2.有小数 范围大的:double双 小范围:float单 最精确的:十进制decimal 3.bo ...