快讯
- 装机圈新宠儿,微星 MAG B850M MORTAR Wi-Fi迫击炮主板评测
- 微星MPG Z890I EDGE TI WIFI 刀锋 钛评测:14 层 PCB 加持,同级之中强无敌!
- 打造低调而卓越的Ai PC,微星MEG Z890 ACE战神主板开箱
- 解密“星”制造,微星深圳恩斯迈工厂探秘之旅
- 游泳也需音乐相伴!韶音OpenSwim Pro评测
- 又一款轻量化电竞
- 元气满满的充电之旅!铂陆帝商超活动嗨翻周末
- 雷柏机甲编码主题系列警戒线S-07图赏:以机械美感诠释潮流新理念桌搭!
- 更适合新手体质的枪战游戏,《无畏契约》开战!
- 现代与传统的融合之旅:贝尔金笔记本扩展坞体验
- 航天品质下的极速充电体验——航嘉G65 GaN快速充电器评测
- 有颜有实力的外设谁能不爱?来看雷柏商超巡演
- 新潮外设引爆全场!雷柏联合PC打造潮品酷玩趴
- 幻彩绚丽,玩趣十足!雷柏V700DIY键盘图赏
- U皇就该配板皇,超频玩家现身说法教你选主板
- 13代酷睿的超频利器,有好板才有好性能
- 全新升级,雷柏V20S RGB光学游戏鼠标2023版详解
- 马斯克30亿放“烟花”,民航故事为何值钱?
- 让露营生活更精致!铂陆帝户外电源AC180评测
- 惠威音响体验:音响中的艺术品,拥有好听的灵魂
- 装机圈新宠儿,微星 MAG B850M MORTAR WiFi迫击炮主板评测31日
- 微星MPG Z890I EDGE TI WIFI 刀锋 钛评测:14 层 PCB 加持,同级之中强无敌!29日
- 打造低调而卓越的Ai PC,微星MEG Z890 ACE战神主板开箱10日
- 解密“星”制造,微星深圳恩斯迈工厂探秘之旅02日
- 游泳也需要音乐相伴!韶音新一代游泳耳机OpenSwim Pro评测12日
- 又一款轻量化电竞"神鼠"来袭!玄熊猫3395游戏鼠标今晚首发149元10日
- 元气满满的充电之旅!铂陆帝商超活动嗨翻周末27日
- 雷柏机甲编码主题系列警戒线S-07图赏:以机械美感诠释潮流新理念桌搭!24日
- 更适合新手体质的枪战游戏,《无畏契约》国服正式开战!20日
- 玩物近话论:现代科技与甘南秘境的融合之旅 贝尔金笔记本扩展坞体验14日
- 航天品质下的极速充电体验——航嘉G65 GaN快速充电器评测12日
- 有颜有实力的外设好物谁能不爱?雷柏点燃PCGROUP潮品商超巡演15日
- 新潮外设好物引爆全场!雷柏联合PCGROUP打造潮品酷玩趴15日
- 幻彩绚丽,玩趣十足!雷柏V700DIY热插拔机械键盘图赏10日
- U皇就该配板皇,超频玩家现身说法教你选主板26日
- 13代酷睿的超频利器,有好板才有好性能25日
- 全新升级 经典复刻 雷柏V20S RGB光学游戏鼠标2023版详解25日
- 马斯克30亿放“烟花”,民航故事为何值钱?23日
- 告别电量焦虑,让露营生活多一分精致!铂陆帝户外电源AC180开箱评测17日
- 惠威音响体验:音响中的艺术品,拥有好听的灵魂04日
初探c#(一)绪论
2004-02-14 09:34 出处:PConline 作者:依栏望海 责任编辑:pjl
1回顶部 翻译至《c# language reference》microsoft press!
/* 1 绪论
c# 是一种简练,时髦(?),面向对象(object oriented),类型可靠(type-safe)的 编程语言。它(发音:C sharp)是从c/c++发展而来的(?俺觉得更象是java),和c/c++是一个语系。所以,很容易被c/c++的程序员接受。c#的目标是结合Visual Basic的高产和C++质朴的力量。
c#将会是vs7的一分子。vs7还支持vb,vc和标记语言——VBScript和JScript。所有这些语言都会在Next Generation Windows Services (NWGS) platform 中得到支持(c#就需要一个NWGS SDK包,可以在m$的网站上下载)。有了这个东东(NWGS),c#就不需要自己的类库,而使用vc或vb这样一些成熟的库。c#也确实没有自己的类库。
废话完了。
1。1 一个老土的例子(就不能换换吗?)*/
/* idontlikeHelloworld.cs : such a out sample :( */
1: using System;
2: class idontlikeHelloworld
3: {
4: static void Main() {
5: Console.WriteLine("i dont like Hello world");
6: Console.ReadLine();
7: }
8: }
/* 如果俺要出书的话,会考虑换个好点的例子。 ^&^
先说说怎样运行。首先,你需要windows2000!(是的,就是它,请各位不要随地丢果皮—— 整个香蕉丢给俺就可以了。)然后,需要NWGS SDK!(82.4mb,不算很大噢。嘿嘿,好在它没有自己的类库。)安装后,在你的程序所在的目录下键入:
csc idontlikeHelloworld.cs (加上一个回车键)
是不是有点复古的味道?这个操作会在和你的*.cs相同目录下产生一个
idontlikeHelloworld.exe文件。双击它,距可以看见:
i dont like Hello world
回车就可以结束它,非常简单。
不过,也可以这样:把它存成后缀为.c的文件更好
(即:idontlikeHelloworld.c)。这样就可以用vc的IDE进行打字,编辑。vc的
txt editor是最棒的噢(又要vc,NO!!!)。然后:
csc idontlikeHelloworld.c (加上一个回车键)
最终效果是完全一样的。
2回顶部
好,现在分析语法:(c#在语法上完全没有新意 :-| )
1: using System;
using 其实是c++的关键字,在c#中的含义也相仿(就是说俺还不敢100%肯定,抱歉)。using用在另一个关键字namespace之后。还是先看看namespace。
语法(syntax):(from MSDN)
namespace [identifier] { namespace-body }
俺的理解:
identifier:在这里就是System(请记住:c#和c/c++一样,是区分大小写的!)。System 必须在使用它的范围内是唯一的。即,不能够有第二个System,但可以有system。 而“它的范围”,俺不想详细解说,只有在实践中才可能掌握。而且,初学者根本不必知道!俺也是近来才知道还有个namespace和using。 :)
在{ namespace-body }中的是真正有用的东东,包括第五行的"nsole.WriteLine"的声明和定义(后面还会提到)。System是由NWGS定义的,咱们只需用(using)它即可。至于System在什么文件里定义,咱就不用管了!交给编译器(就是刚才那个“csc.exe”)去寻找。这就代替了c/c++中的“#include”,可以说是近了一步,避免大量烦人的细节。如果你没学过c/c++,就不用理会。namespace 在后面还会谈到。
2: class idontlikeHelloworld
class:是c语系中另一个关键字“类”。表示一系列的特性(官方说法:属性)和行为方法,有了它你的程序就可以“另类”,创造与别不同的有你特色的东东噢!在这里,俺就定义了“idontlikeHelloworld”。注意:这也是c#强制的,对于每一个可执行的程序都必须有。你想干的事就可以记录在紧跟着你定义的class后面的一对花括号。注意:“{”和“}”一一对应的,“(”和“)”同样。
4: static void Main() {
Main()是本例子第一个动作(行为方法),干的第一件事。它是属于俺定义的idontlikeHelloworld类的方法。并且是c#强制的,是程序的真正开始!在紧跟在它后面的“{}”中的语句顺序,就是程序的运行顺序!本例中只有一行(第六行干嘛用?你可以去掉再编译一次看看),输出一句话。
5: Console.WriteLine("i dont like Hello world");
非常奇怪,Console(再次提醒:注意大小写)不是俺定义的,从何而来?它其实是属于Systemnamespace 的一个class。WriteLine()是Console类中的一个方法,用来显示一句话(字符串)。
这里只是用了这个方法的1/18!并且是最简单之一!其他的有机会再说。你也可以用
“Console.WriteLine”在“NGWS SDK Documentaion”中搜索“Console.WriteLine”,记住复选“仅搜索标题”,它会列出19项。好啦,完了!其实,还有“.”没说呢!呵呵...lei si la!!!!
语句不通顺,俺会在以后改进(update),敬请原谅!--“请先用叉子喝汤”
3回顶部
“.”被称为分隔符(separator),用来连接名字,如上面"Console.WriteLine",就把类和它的方法连接。通过这种方式,咱们就可以使用现成方法集合。这里再回顾一下俺的例子,看看namespace和“.”是如何连用的,还有为什么要使用namespace这个关键字。把例子稍微改一下:
/* idontlikeHelloworld.cs */
1: //using System;
2: class idontlikeHelloworld
3: {
4: static void Main() {
5: System.Console.WriteLine("i dont like Hello world");
6: System.Console.ReadLine();
7: }
8: }
/* 看见了,当俺注销掉“using System;”后,在第五行和第六行加了“System”。程序的结果不会改变。但是,很明显的这样比较罗嗦,所以引入了“namespace”。 其实,class应该可以完成同样的功能。
不过,设计者可能不想让一个关键字涵盖太多的功能。记得在c向c++发展的时候,引入了“class”,而不是扩展“struct”关键字的功能;又比如“=”只用于赋值,“==”只用于判断相等。这是c/c++和c#在语法上其中一个重要的特点。这样设计的好处很多。有机会再聊噢。
如果你没学过c/c++,以下的内容可以跳过。c#与c/c++在语法上还是有区别的,比如:
1。c#根本没有“::”;“->”只在程序中很小的片断中。在c#中应采用“.”。
2。c#无须先声明定义,再使用。与java相同。
3。c#取消了用“#include”导入其他的程序文本文件,而采用象征性的句柄引入他人的代码。这样一来,就排除了编程语言间的障碍,方便地使用其它语言编写的库。如“Console”类可以是c#或者是其他任一种语言编写的。
|
最热搜索
无线路由器怎么用 会说话的汤姆猫电脑版 12306网上订火车票 跳舞吧 flash player 下载 PP助手电脑版 Adobe Reader(pdf阅读) iOS6正式版12项新功能 QQ空间克隆器 9158视频KTV 植物大战僵尸辅助工具 Win8怎么关机 QQ空间进不去 2013年春节是几月几号 QQ昵称 QQ空间皮肤 PPT模板 电脑输入法不见了怎么办 2012中秋节是几月几日 word安全模式 qq输入法怎么点亮 IE修复 感恩节是几月几日 CSS布局 PS快捷键 Outlook设置 声卡驱动器官方免费下载 格式工厂怎么用 桌面图标有阴影怎么去掉 Windows RT是什么意思 2013年日历设计 Word打不开怎么办 Win8专区 腾讯微云网 windows8激活工具 剑灵什么时候公测 QQ通讯录怎么用 开心斗地主 拖拉机小游戏 麻将游戏 中国象棋 德州扑克 黄金矿工中文版 保皇扑克游戏 四国军棋 万圣节是几月几日 ps抠图教程 12306订票助手 万圣节小游戏大全 rar文件怎么打开 Photoshop CS6教程 iOS6完美越狱 QQ个性签名