现在的年轻人都用记事本写Java吗?

tdy_nju 2016-09-07 07:46:34
刚才看了一下SE板块,看到一个新手说“新手不能太依赖Eclipse”,又有一个新手贴了一段代码求找错结果是for循环里分好写成了点号……这是随便一个IDE都会报的错吧。现在的新手难道都用记事本写代码了?
...全文
1119 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
SunLiangsay 2016-09-29
  • 打赏
  • 举报
回复
估计是老师要求吧。让他们先背一下整体结构
Ls_SS 2016-09-29
  • 打赏
  • 举报
回复
至少也是 editer plus , notepad ++。。。没颜色没对齐的记事本!!是中了李新华的毒了吧。
朗晴 2016-09-15
  • 打赏
  • 举报
回复
手写代码费时间,用工具写出错率低。
nai598455803 2016-09-14
  • 打赏
  • 举报
回复
不是累死了就是被fire 了
小灯光环 2016-09-14
  • 打赏
  • 举报
回复
刚学java头几天可以用记事本写~有助于帮助记忆一些基本的结构~ 最起码main方法得背过。。后面也着实没这个必要了。。肯定要用IDE写~
qghok 2016-09-14
  • 打赏
  • 举报
回复
正式项目中时间很紧的,想都不敢想。别再理会这种问题了,就算新手也要用ide快速上手。
Java_Gump 2016-09-08
  • 打赏
  • 举报
回复
能不能用点高级的. editer plus , notepad ++
xiyue_dream 2016-09-08
  • 打赏
  • 举报
回复
现在还有用记事本开发的么
Linuxwell 2016-09-08
  • 打赏
  • 举报
回复
不要人为增加难度折腾自己
tangwwip 2016-09-08
  • 打赏
  • 举报
回复
刚开始学Java的时候老师要求过用记事本写,还有页面那些的 说是让我们多学点东西 后来就从来没用过了
朗晴 2016-09-08
  • 打赏
  • 举报
回复
新人,表示不会用记事本写。
聪头 2016-09-08
  • 打赏
  • 举报
回复
基础类可以,涉及到业务的还是需要IDE
tdy_nju 2016-09-07
  • 打赏
  • 举报
回复
斑竹你好~我是Java区新人~
  • 打赏
  • 举报
回复
学习可以用,开发肯定还是IDE
c#学习笔记(1) 51099在线学习网发布 文章来源:网络收集 发布时间:2006-05-25 字体: [大 中 小] 51099在线学习网 http://www.51099.com 1, 结构(struct) 与 类(class) [attributes] [modifiers] struct identifier [:interfaces] body [;] 结构与类很相似,都表示可以包含数据成员和函数成员的数据结构。与类不同的是,结构是值类型并且不需要堆分配。结构类型的变量直接包含结构的数据,而类类型的变量包含对数据的引用(该变量称为对象)。 struct 类型适合表示如点、矩形和颜色这样的轻量对象。尽管可能将一个点表示为类,但结构在某些方案中更有效。在一些情况下,结构的成本较低。例如,如果声明一个含有 1000 个点对象的数组,则将为引用每个对象分配附加的内存。结构可以声明构造函数,但它们必须带参数。声明结构的默认(无参数)构造函数是错误的。总是提供默认构造函数以将结构成员初始化为它们的默认值。在结构中初始化实例字段是错误的。在类中,必须初始化实例对象. 使用 new 运算符创建结构对象时,将创建该结构对象,并且调用适当的构造函数。与类不同的是,结构的实例化可以不使用 new 运算符。如果不使用 new,那么在初始化所有字段之前,字段将保持未赋值状态且对象不可用。对于结构,不像类那样存在继承。一个结构不能从另一个结构或类继承,而且不能作为一个类的基。但是,结构从基类 Object 继承。结构可实现接口,其方式同类完全一样。 [c ] 与 C 不同,无法使用 struct 关键字声明类。在 C# 中,类与结构在语义上是不同的。结构是值类型,而类是引用类型。 2, 装箱和拆箱(取消装箱) 装箱是值类型到 object 类型或到该值类型所实现的任何接口类型的隐式转换。将一个值的值装箱会分配一个对象实例并将该值复制到新的对象中。关键字 object. 取消装箱是从 object 类型到值类型或从接口类型到实现该接口的值类型的显式转换。取消装箱操作包括:检查对象实例,确保它是给定值类型的一个装箱值。将该值从实例复制到值类型变量中。 例: int i = 123; // A value type object box = i; // Boxing int j = (int)box; // Unboxing 装箱转换 取消装箱 3 , 隐式和显式 下列转换属于隐式转换:例:object o=i; 标识转换。 隐式数值转换。 隐式枚举转换。 隐式引用转换。 装箱转换。 隐式常数表达式转换。 用户定义的隐式转换。 下列转换属于显式转换: object 0=(object)i; 所有隐式转换。 显式数值转换。 显式枚举转换。 显式引用转换。 显式接口转换。 取消装箱转换。 用户定义的显式转换 4, delegate(委托) delegate void D(int x); class C{ public static void M1(int i) { /* ... */ } public static void M2(int i) { /* ... */ }} class{…….D cd1 = new D(C.M1);………….} 委托是一个数据结构,该数据结构引用一个静态方法,或引用一个对象实例和该对象的实例方法。在 C 或 C 中与委托最接近的是函数指针,但函数指针只能引用静态函数,而委托可以同时引用静态方法和实例方法。在后一种情况中,委托不仅存储对方法入口点的引用,还存储对调用其方法的对象的引用。与 C 函数指针不同,委托是完全面对对象的;与指向成员函数的 C 指针不同,委托同时封装对象实例和方法。委托声明定义从类 System.Delegate 派生的类。委托实例封装一个或多个方法,每个方法都被称为可调用实体。对于实例方法,可调用实体由一个实例和该实例上的方法组成。对于静态方法,可调用实体仅由一个方法组成。给定委托实例和适当的参数集,便可以用该参数集调用此委托实例的所有方法。委托实例的一个有趣和有用的属性是它不了解或不关心它所封装的方法的类;真正重要的只是方法要与委托的类型兼容, 这使委托非常适合“匿名”调用。可选的形参表指定委托的参数,而返回类型则指示委托的返回类型。如果下面两个条件都为真,则方法和委托类型是兼容的:(兼容的概念就是可以用此声明的委托对方法进行委托). 1它们具有相同的参数数目,并且类型相同,顺序相同,参数修饰符也相同。 2它们的返回类型相同。 C# 中的委托类型是名称等效的,而不是结构等效的。(但是请注意:两个不同但结构上等效的委托类型的实例可能会比较为相等),准确地说,两个具有相同参数列表、签名和返回类型的不同的委托类型被认为是不同的委托类型。委托实例所封装的方法集合称为调用列表。 5, interface(接口) [attributes] [modifiers] interface identifier [:base-list] {interface-body}[;] 一个接口定义一个协定。实现接口的类或结构必须遵守其协定。接口可以从多个基接口继承,而类或结构可以实现多个接口。接口可以包含方法、属性、事件和索引器。接口本身不提供它所定义的成员的实现。接口只指定实现该接口的类或接口必须提供的成员。接口可以是命名空间或类的成员,并且可以包含下列成员的签名:方法属性 索引器. 一个接口可从一个或多个基接口继承。接口可由类实现。实现的接口的标识符出现在类的基列表中。被继承的接口称为该接口的显式基接口。当接口具有一个或多个显式基接口时,在该接口声明中,接口标识符后跟一个冒号以及由逗号分隔的基接口标识符列表。接口的基接口是显式基接口及其基接口。换言之,基接口集是显式基接口、它们的显式基接口(依此类推)的完全可传递的闭包。接口继承其基接口的所有成员。接口成员是通过 I.M 和 I[A] 形式的成员访问和索引访问表达式访问的,其中 I 是接口类型的实例,M 是该接口类型的方法、属性或事件,A 是索引器参数列表。接口可以由类和结构实现。为了指示类或结构实现接口,在该类或结构的基类列表中包含了接口标识符。在实现类或结构中定位接口成员的实现的过程称为接口映射。 6,object object 类类型是所有其他类型的最终基类。C# 中的每种类型都是直接或间接从 object 类类型派生的。可以把任何类型的数值给object类型. 7,string类型 string 类的实例表示 Unicode 字符串。尽管 string 是引用类型,但相等运算符(== 和 !=)被定义为比较 string 对象(而不是引用)的“值”(7.9.7 字符串相等运算符)。这使得对字符串相等性的测试更为直观。字符串为 string 类型并可成两种形式,即用引号引起来和用 @ 引起来。用引号引起来的字符串括在双引号 (") 内, 并且可以包含包括换码序列在内的任何字符用 @ 引起来的字符串以 @ 开头,并用双引号引起来。用 @ 引起来的字符串以 @ 开头,并用双引号引起来。若要在一个用 @ 引起来的字符串中包括一个双引号,请使用两对双引号:@ 符号的另一种用法是使用碰巧成为 C# 关键字的被引用的 (/reference) 标识符。 8, 修饰符 修饰符作用 访问修饰符 public private internal protected 指定声明的类型和类型成员的可访问性。 访问不受限制 只有包含该类的成员的类可以访问 只有当前工程可以访问 只有包含该成员的类和继承的类可以访问 abstract指示某个类只能是其他类的基类。 const指定无法修改字段或局部变量的值。 event声明一个事件。 extern指示外部实现此方法。 override提供从基类继承的虚拟成员的新实现。 readonly声明一个字段,该字段只能赋值为该声明的一部分或者在同一类的构造函数中。 sealed指定类不能被继承。 static声明属于类型本身而不是属于特定对象的成员。 unsafe声明不安全的上下文。 virtual在派生类中声明其实现可由重成员更改的方法或访问器。 volatile指示字段可由操作系统、硬件或并发执行的线程等在程序中进行修改。 9,语句 语句是程序指令。除非特别说明,语句都按顺序执行。C# 具有下列类别的语句。 类别C# 关键字 选择语句if, else, switch, case 迭代语句do, for, foreach, in, while 跳转语句break, continue, default, goto, return 异常处理语句throw, try-catch, try-finally Checked 和 Uncheckedchecked, unchecked fixed 语句Fixed lock 语句Lock (1) foreach 语句为数组或对象集合中的每个元素重复一个嵌入语句组。foreach 语句用于循环访问集合以获取所需信息,但不应用于更改集合内容以避免产生不可预知的副作用。此语句的形式如下: foreach (type identifier in expression) statement 若要循环访问集合,集合必须满足特定的要求。集合类型: 必须是 interface、class 或 struct。 必须包括返回类型的名为 GetEnumerator 的实例方法,例如 Enumerator(详见下文)。 Enumerator 类型(类或结构)必须包含: 一个名为 Current 的属性,它返回 ItemType 或者可以转换为此类型的类型。属性访问器返回集合的当前元素。 · 一个名为 MoveNext 的 bool 方法,它递增项计数器并在集合中存在更多项时返回 true。 有三种使用集合的方法: 使用上述指导创建一个集合。此集合只能用于 C# 程序。 1. 使用上述指导创建一个一般集合,另外实现 IEnumerable 接口。此集合可用于其他语言(如 Visual Basic)。 2. 在集合类中使用一个预定义的集合。 (2) throw 语句用于发出在程序执行期间出现反常情况(异常)的信号。throw 语句的形式为: throw [expression]; expression :异常对象。当在 catch 子句中再次引发当前异常对象时,它被省略。 (3)try –catch语句 try-catch 语句由一个 try 块和其后所跟的一个或多个 catch 子句(为不同的异常指定处理程序)构成。try-catch 语句采用下列形式之一: try try-block catch (exception-declaration-1) catch-block-1 catch (exception-declaration-2) catch-block-2 ... try try-block catch catch-block (4) fixed 防止变量被垃圾回收器重定位。 (5) lock lock 关键字将某个语句块标记为临界区。 6. 方法参数 如果为没有 ref 或 out 的方法声明一个参数,则此参数可以具有关联的值。可以在方法中更改该值,但当控制传递回调用过程时,不会保留更改的值。通过使用方法参数关键字,可以更改这种行为。如果没有ref,out则默认为值传递,虽然可以在方法中修改这个参数的值,但是修改后的值不会还会到调用该方法的程序中. params :params 关键字可以指定在参数数目可变处采用参数的方法参数 ref :引用传递 out : 7, namespace(名字空间) C#学习笔记(2)【大 中 小】【打印】【加入收藏】【关闭】 【收藏到新浪ViVi】【收藏到365KEY】 浏览字号:日期:2004-07-11 人气:8092 出处: write by cash(天下第七) 2002.01.20 版权所有,翻录不究 cashcao@msn.com 选择 我身上携带着精神、信仰、灵魂 思想、欲望、怪癖、邪念、狐臭 它们寄生于我身体的家      我必须平等对待我的每一位客人 -----------伊沙:《原则》 我的名字是cash,所以我很功利主义; 我的星像是Leo,所以我很大男人主义; 我的语言是C#,所以我有点儿拿不定主义。 /* 你能看得出来,这不是一篇正规的技术文章,所以若你不小心从里边读到了一个爱情故事,可不要奇怪。有很多人用程序来表述爱情,在其中我能看到有Money,有Girl,有一些还涉及到Sex,但是我没有找到Love,我始终相信这世上有一种力量直接来自于爱情,到现在仍然相信。*/ C#(读作C sharp),是Microsoft公司新推出的(?)专为.NET设计的一门语言,号称“C/C++家族中第一种面向组件的语言”。很多人觉得它应该像C或者C++,但事实上它更像是java的一个clone,所以作为入门,读一下清华大学出版社出版的《Java 语言与面向对象程序设计》可能会对你有所帮助。本文假定你具备一切学习此语言所需的知识,没有也不要紧,我会在文中尽量列出相关的link,鉴于互联网瞬息万变的特点,若某一链接不可用,请自行至Google查询。 如前所述,我是一个狮子座男人,一度我认为学习Java会使我看起来与众不同,可是几个月以后我放弃了这个选择,我看了论坛里关于这两种语言孰优孰劣的讨论,最终选择了C#,请不要问我为何做出这样的选择,很多人认为中文是世界上最美丽的语言,可是华人世界以外有谁在讲汉语? 另外我发现论坛上学习Java的人都非常的有个性,当有人问起学习哪种语言更好时,他会打出几百个“JAVA”来,填满整个屏幕,也不说是为了什么。我觉得这样做未免有些太霸道了,如果你说这叫偏执狂我也不反对,虽然我是狮子座,可也不想被人这样看。 在C#刚刚推出的时候,大多数的程序员都不免吼上两句——不是因为高兴,而是因为又多了一种语言。他们觉得现在的语言太多了,没有必要再多出一种来添乱子。但是当他们看完C#的文档后又开始高兴起来,因为C#是如此简单:事实上,简单正是C#最大的特点。除此之外,它还具有现代、面向对象、类型安全、版本控制、兼容、灵活等特点。详细介绍请参阅rainbow(一个长着胡子的彩虹)翻译的<> ,前几章非常的有趣。 看完了前面几段,我的朋友提出了不同的意见:C#不是Java的Clone,它只是长得有些像Java而已,其实面向对象、中间语言什么的也不是什么新玩意儿,非Sun独创,有文为证:华山论剑:C#对Java。另外他对我上一集中说Microsoft越来越不要脸也极为生气,因为相比之下,Sun也不怎么样,微软已经将C#提交设在日内瓦的ECMA(European Computer Manufacturers' Association,国际标准化机构欧洲电子计算机工业会)并获得批准。Sun就从来没有将它的Java交给过ECMA,以至于正当Microsoft尽力在Visual J++基础上拓展Java功能,并使之与Windows操作系统紧密结合在一起的时候,Sun公司对Microsoft提出了法律诉讼,控告Microsoft违反了许可证协议中的条款,最终的结果是Microsoft公司不得不停止其Visual J++产品的开发。(Microsoft后来在完全面向.NET框架的开发语言集中加入了Visual J#.NET,算是对Java语言用户的一种照顾。) 有人说,选择C#意味着选择MS(在中国的程序员当中,这并不是件值得自豪的事。如果你还不能理解这种心情,可以试想一下有人很认真地对你讲他喜欢听毛宁的歌)。事实上,通过ECMA标准的C#可以由任何人在任何平台上设计出它的开发程序。比如Ximian公司的Mono工程,可以使开发者能够编同时在Windows和Linux上运行的.Net程序,这些程序甚至还可能在其它非Windows的操作系统上运行,比方Unix。这一段时间我正在Linux下试验这个工程,遗憾的是,还没有成功。 一位师兄对此种比较颇为不屑,他认为只要选一种语言去学就好了,“重要的是你要用它,并且做的比别人好。”这让我想起来一直都很喜欢的那个歌:把你自己该做的那份工作,做得比别人出色。年轻的时候我老是用这句话自勉…… 到这里我发现这个故事还没有提到桐桐,这篇东西是为她而作。我早在十八个月以前就答应了她,我答应了她很多事,但还没有完成一件,现在我要一件一件的去实现。所以这个故事还应该有个更好的开始。 2000年6月我大学毕业,从北京回到了石家庄,到一家什么都做的公司上班(做一个网站),最开始制作界面,然后用asp编程,如果你用过asp就会知道,这是个很无聊的工种。在此之前我在一家报社实习,为他们的网站做设计和动画。在那里我认识了桐桐。 那时候她还在上学。 >>>未完,待续... C#学习笔记(3)【大 中 小】【打印】【加入收藏】【关闭】 【收藏到新浪ViVi】【收藏到365KEY】 浏览字号:日期:2004-07-11 人气:6938 出处: 开始 2000年6月我大学毕业,从北京回到了石家庄,正式开始了我的职业生涯。如前所述,一开始我使用的语言是asp,我一直认为这不能称之为编程,因为asp不是一种编程语言,把它叫做动态网页实现技术可能更好。另外,asp很简单,并且,简单就是它全部的特点--这使得它很容易就能学会(在后来的工作中,我接触到许多应聘的学生,他们都告诉我自己精通asp语言)。虽然学习起来很简单,但是在使用起来却不得不多费点儿劲儿:我还能记得自己晚上一个人在办公室用VI一步一步调试某一个网页的情景,每当遇到挫折失败的时候,总是想起给桐桐打一个电话,听听她的声音。如你所知,我总是遇到困难。 现在你能看出来,我不是高手,只是一个低手... 2000年6月我大学毕业,从北京回到了石家庄,同一时间(美国西部时间6月22日上午),微软公司在位于美国西雅图郊外的总部内邀请新闻记者、新闻分析家等约400人,举行了新闻发布会“Forum2000”,宣布正式推出.Net计划。这个计划中包括了新的网络计算平台(.Net Framework)、新的语言(C#)、新的开发工具(Visual Studio.Net)以及asp的下一个版本ASP.NET,后者最开始被称为ASP+。那时候我学习的主要兴趣就在ASP.NET上,并且通过这个窗口开始了解Microsoft.Net的各个方面。 ASP.NET仍然不能称之为一种编程语言,但是现在可以把它看作是一个创建、管理、部署Web应用程序的平台。可以使用任何.Net语言在这个平台上开发互联网应用程序,这其中当然包括C#。它们之间的关系可以从下图中看出: 这就是著名的.Net 平台结构图,从这个图上可以看到,ASP.NET、Windows Forms和VS.Net都不过是.Net开发平台的一部分,用于.Net应用程序的开发及展示。.Net 平台的核心技术为:通用语言运行时(CLR:Common Language Runtime)、基类库(Base Class Library)、.Net语言及Visual Studio.Net。 从这个图上也可以看出,.Net Framework是架构在Windows平台上的一个虚拟的运行平台,你可以想象将最下层的Windows换作其它的操作系统,比如说Linux,一样可以实现使用符合了CLS(Common Language Specification,通用语言规范)的.Net语言(VB.Net、C#、JScript.Net等)来创建ASP.NET或Windows Forms(可能会叫做Linux Forms)应用程序的功能,这其实就是我们前面介绍的Mono计划所要实现的功能。所以可以这么认为,理论上,C#是一种可以跨平台的语言,这很像Java,另一个比较像Java的地方是,C#也是一种(特殊意义上的)解释性的语言。同Java一样,C#编的程序代码也是先通过C#编译器编译为一种特殊的字节代码(中间语言,Microsoft Intermediate Language,MSIL),运行的时候再经由特定的编译器(JIT编译器,Just In Time,JITer)编译为机器代码以供操作系统执行。 不仅是C#语言,所有.Net语言(将会包括我们常用的几十种现代的编程语言)都可以编面向CLR的程序代码,这种代码在.Net中被称为托管代码(Managed Code),所有的Managed Code都直接运行在CLR上,具有与平台无关的特性。 解释性的语言很安全,并且可以通过它的运行平台为其赋予更多的功能,比如自动内存管理、异常处理等。事实上,C#语言的许多特点都是由CLR提供的,下面的CLR结构图说明了这一点。 可以看到,类型安全(Type Checker)、垃圾回收(Garbage Collector)、异常处理(Exception Manager)、向下兼容(COM Marshaler)、多线程支持(Thread Support)这些C#的特点都是由CLR来提供的。CLR最早被称为下一代Windows服务运行时(NGWS Runtime),是直接建立在操作系统层上的一个虚拟的运行环境,主要的功能是管理代码的运行。在.Net 平台结构图中,CLR的上面是.Net的基类库(Base Class Library,BCL),这组基类库包括了从基本输入输出到数据访问等各方面,提供了一个统一的面向对象的、层次化的、可扩展的编程接口。从.Net 平台结构图中也可以看到,基类库可以被各种语言调用和扩展,也就是说,不管是C#、VB.NET还是VC++.NET,都可以自由地调用.Net的基类库。事实上, C#并没有属于自己的类库,它所使用的编程接口就是.Net提供的基类库。所以,在决定使用C#时,真正需要费工夫学习的其实是.NET框架的基类库:C#自身只有区区77个关键词,而且其语法对许多程序员来说都是他们非常熟悉的。BCL则相反,它包含了超过4500个以上的类和无数的方法、属性,在你的C# 程序中随时都可能会用到它来完成自己的任务。 很多人都思考过应如何开始学习一种新的语言,对于一个有经验的编程人员来讲,这确非难事。但是对于一个对编代码一无所知的人而言,如果你是以C#开始你的编程之旅的,数目繁多的概念及新名词可能会令你有些不知所措。这时候请注意你的学习顺序,任何一种编程语言的学习都是按照运行平台、语法、基类库直至各方面的应用这一顺序来进行的,但是在实际的学习中,它们之间并不是孤立的。推荐的方法是:对运行平台和语法有了一个整体的认识后,在应用中学习各种基类库的用法。鉴于C#这一语言的特殊性,全面了解它的运行平台(.Net Framework)必会使你的学习事半功倍。所以请记住上面提到的两个图,在以后的学习中,虽然可能不会明确的涉及到它们,但是在整个C#的学习过程中,它们却是无处不在的。 还有一个很重要的概念需要你明白,这就是公共语言架构(Common Language Infrastructure ,CLI)。CLI是CLR的一个子集,也就是.NET中最终对编译成MSIL代码的应用程序的运行环境进行管理的那一部分。在CLR结构图中CLI位于下半部分,主要包括类加载器(Class Loader)、实时编译器(IL To Native Compilers)和一个运行时环境的垃圾收集器(Garbage Collector)。CLI是.Net和CLR的灵魂,CLI为IL代码提供运行的环境,你可以将使用任何语言编的代码通过其特定的编译器转换为MSIL代码之后运行其上,甚至还可以自己MSIL代码在CLI上面运行。如你所知,欧洲计算机制造商协会(ECMA)已经于2001年10月13日批准C#语言规范(ECMA-334)成为一种新诞生的计算机产业标准。同时国际标准组织ISO也同意该标准进入该组织的审批阶段。并且,作为.Net与CLR的核心部分,CLI与C#也同时获得了ECMA的批准(ECMA-335)。拥有了C#与CLI这两项标准,你可以自己出能够运行于任何操作系统上的.Net平台(只要你愿意)。如前所述,著名的Mono项目就是这么干的,Mono项目包括三个核心的部分:一个C#语言的编译器,一个CLI和一个类库。在Java的世界中,这项工作是由SUN公司完成的,SUN针对不同的操作系统开发出相应的Java虚拟机以便让一个由Java开发的应用程序运行在不同的操作系统上,但是迄今为止还没听说过微软有这方面打算(为用户提供非Windows系统的.Net平台)。 2000年的6月还有很多事情发生,2000年的6月我在学校做毕设,晚上就跑到系试验室看欧锦赛,我很喜欢的坎普君(Bergkamp)大放异彩,帮助荷兰队6比1大胜南斯拉夫,米哈伊洛维奇 (Mihajlovic)在比赛最后莫名的笑容永远留在了我的心中。说实话,那时候只顾着看EURO2000,可没管什么.Net、.Not。另外,离别的愁绪围绕在每个人的周围,广播里开始反反复复播放一些古老的歌曲,不知道为什么,恋曲1980却是那时候的最爱。 后来,我们都毕了业。如你所知,我离开了北京。 >>>未完,待续... C#学习笔记(4)【大 中 小】【打印】【加入收藏】【关闭】 【收藏到新浪ViVi】【收藏到365KEY】 浏览字号:日期:2004-07-11 人气:8360 出处: 约定 //一个典型的用C#就的HelloWorld程序 using System; class HelloWorld { public static void Main() { Console.WriteLine("Hello World !"); } } 我忘记自己第一次用C#向世界问好是在什么时候了,不过可以肯定我已经打过招呼了,那时候用的是beta1版。现在你可以到http://msdn.microsoft.com/downloads/default.asp?url=/downloads/sample.asp?url=/msdn-files/027/000/976/msdncompositedoc.xml去下载.Net Framework Software Development Kit (SDK)的正式版,其中包括了前面提到的.NET Framework, 以及书、编译、测试、开发 .NET Framework 应用程序所需要的一切——文档、例子、命令行工具和编译器。安装之后就可以开发和运行C#程序了,不过一般的建议是:一定要看.Net Framework SDK中所带的文档与例子,如果能照着例子再一遍那就再好不过了。 当我第一次看到C#代码的时候,同样认为它很像Java,一个形象的比喻是:C#和Java是一对双胞胎,从语法的角度来讲,它们共同的父亲当然非C++莫属(请注意,不是VC++)。对于一个学过Java语言的人来说(比如说在下),要理解这段代码实在是太容易了:第一行当然是注释了,C#支持两种注释方法,以"//"开始的单行注释和以"/*"、"*/"配对使用的多行注释。第二行(using System)导入了System这个包(在C#中被称之为名字空间,Namespace),可以让我们方便的调用Microsoft.Net基类库System中的所有类,在此例中使用了System名字空间中的"Console"类,用于在控制台窗口输出程序运行结果。如前所述,C#并没有内置的输入输出语句,所有需实现的功能都完全来自于.Net基类库。这一句的作用就是告诉编译器去哪里寻找Console类以便调用。 接下来声明了一个类HelloWorld,这个类中有一个特殊的方法Main(),每个可执行文件都需要有一个入口点,在C#中,这个入口点就是Main()方法,此方法将在程序启动时被调用。在这个方法中,Console是在命名空间System下的一个类,它表示的是控制台。这里调用其静态方法WriteLine()。如同C++一样,静态方法允许我们直接作用于类而非实例对象。WriteLine()函数接受字符串类型的参数"Hello World !",并把它送入控制台显示。如前所述,C#没有自己的类库,它直接获取Microsoft.NET系统类库。在这里正是通过获取Microsoft.NET系统类库中的System.Console.WriteLine()来完成我们想要的控制台输出操作。现在使用记事本来编这段代码,并将它的文件名保存为HelloWorld.cs,其中".cs"是C#源代码文件的扩展名。然后在配置好C#编译器的命令行环境里键入"csc HelloWorld.cs"编译文件。可以看到编译输出文件HelloWorld.exe。键入HelloWorld执行这个文件可得到下面的输出: Hello World ! 这就是第一个C#的程序,我们使用csc.exe来编译它,对于这个C#编译器,有如下说明: 1. 它是随.Net Framework SDK免费发布的,可以在DOS命令行被调用 2. 它的使用方法如下:   csc SourceFile.cs /out:TargetFile.exe   如果不使用输出参数指定目标文件名,则默认输出为源文件名 3. 一般情况下,它在系统文件夹(Windows或WinNT)下的Microsoft.NET\Framework\v1.0.3705文件夹内 4. 如果你安装了VS.Net,从Visual Studio.NET Tools项目组中可以激活Visual Studio.NET Command Prompt窗口,这是一个配置好C#编译器的命令行环境 5. 使用csc.exe编译后的C#程序并不是机器代码(尽管拥有.exe的后缀名)。如前所述,C#程序只是被编译成了MSIL代码。 C#编译器(csc.exe)编译后的文件并不是一个严格意义上的可执行文件(并不包含机器代码),而是一个PE(portable executable)格式的文件,虽然它同样拥有.exe的后缀名。在这个PE文件中也不仅仅只包含中间语言,在其中还包含有元数据(Metadata)和一个由编译器添加的目标平台的标准可执行文件头。 中间语言,确切地说,应该称为微软中间语言(Microsoft Intermediate Language,MSIL),是由微软定义的一种界于源代码与机器码之间的一种语言。在CLR中,它首先会由特定的语言编译器将其包装成exe格式的伪代码(P代码)。再由特定的编译器将其转换为本地代码执行。对于微软中间语言,一个形象的比喻是:如果CLR是操作系统的话,那么微软中间语言就是.Net平台上的ASM汇编语言。它比大多数 CPU 机器语言更为高级,比如它可以理解对象类型,并具有创建和初始化对象、调用关于对象的虚拟方法以及直接操作处理数组元素的指令。它甚至还具有发现和捕获异常情况用于错误处理的指令。 元数据(Metadata)和MSIL共同存在于编译好的程序文件之中,描述了此程序包含的类型的定义、各种类型的签名及其它一些数据,相当于以前的类型库(Type Library),同时也记载了此程序所引用到的其它外部类。元数据的主要作用是将与代码有关的更多的信息提供给CLR。基本上,元数据用于如下各项任务:用于表示CLR用途的信息,如定位和装载类、内存中这些类的实例、解决调用、翻译IL为原始码、加强安全并设置运行时上下文边界。 一个由C#语言就的源码文件在CLR环境中执行的过程是这样的:首先由C#编译器编译成包含了中间语言和元数据的PE文件,当我们在系统中调用这个文件时,CLR会启动一个编译器再将这个PE文件包含的MSIL代码转换成为托管的本地代码。转换MSIL代码为本地码的这个编译器就叫做JIT编译器(Just In Time,JITer)。请注意它并不是前面我们用到的C#编译器。 现在让我们看看JIT编译器是如何工作的:当PE文件被调用时,JIE编译器将其分解为MSIL和元数据,这时候MSIL并不直接让.Net去调用本地的系统接口,而是指定.Net系统去编译连接那些需要的CLR DLL,编译出百分之百的本地代码。整个的过程如下: 当一个类型被装载时,装载器创建一个存根(stub),并使它与类型的每一个方法相连接。当一个方法第一次被调用时,存根把控制交给JITer。JITer把MSIL编译为本地代码,并且把存根指针指向缓冲本地代码。已经被JITer编译的方法随后就直接调用已经产生的本地代码,减少了JITer编译和执行代码的时间。可以看到,JITer并不会一次性的将所有的MSIL都编译为本地代码,而是在我们需要时才即时编译,也就是说,有些代码可能从来都没有被编译过。很明显这样做的好处是既保证了运行期的安全性,又不会损失太多的效率。 这就是一个C#程序执行时的步骤。整个过程是这样的: 1) 由C#编译器将源代码编译为中间语言 2) 装入托管代码,这包括解决内存中的名字、表层类(laying out classes ),并且创建JIT编译所必需的存根。通过执行经常性校验,包括加强一些访问规则,类装载器同样也增强了安全性 3) 用JITer将 IL转换成原始代码 4) 装入元数据、校验类型安全和方法的完整性 5) 垃圾收集(GC)和异常处理 6) 描绘和查错服务 7) 管理线程和上下文以及远程管理。 不必全部理解这些概念,在以后的学习中将会一一的体会到它们的精彩,现在你需要做的(如果你还没这么干过的话),是找到ildasm.exe这个文件(一般情况下,它会和csc.exe在同一文件夹中)。顾名思义,这是一个MSIL的反汇编程序(.Net Framework IL Disassembler),在命令行窗口下输入ildasm helloworld.exe /out=helloworld.il就会得到两个文件:helloworld.il和helloworld.res。前者包括了反编译出来的元数据和MSIL代码,后者则是提取的资源文件。用记事本打开helloworld.il文件,可以看到它定义并实现了一个继承自System.Object 的HelloWorld类及两个函数:Main()和.ctor()。其中.ctor()是HelloWorld类的构造函数。在这个文件中还包括元数据和其它有关的信息。如果你觉得这样不够直观的话,可以在命令行窗口键入ildasm helloworld.exe,这样就可以启动ILDASM 窗口并向我们展示出反编译后的helloworld.exe文件。 请仔细将这些代码看上几遍,现在理解全部这些内容并不重要,但是希望你也能看一下文件中的元数据,这其中包含所有 Runtime 和编译器需要的有关程序集及其模块、类型和成员(如方法)的信息。 行文至此,我想谈一下学习。如你所知,在我们所处的环境中,学习总意味着是一个痛苦的过程,学习一种新知识好像总是为了自己的某种需求,我并不认为这样有什么不对,但我总觉着,除了拿到高薪和受人尊敬外,学习还应该带给我们更多的快乐。有些知识我们现在也许用不着,比如前面谈到的一些内容,但是我们了解了,就是一件值得高兴的事。 智慧本身就是好的,有一天我们都会死去,追求智慧的道路还会有人在走着。死掉以后的事我看不到。但在我活着的时候,想到这件事,心里就高兴。 ——王小波 今天是2002年4月7号,再过三天就是王小波的忌日了,不知道有多少人还会记得这个日子,还会记得这个人。本文的最后,我向大家推荐小波的作品——每一个心智成熟的人都应该读一读小波的文字。在他的杂文随笔集《沉默的大多数》中有一句话谈到了他作为程序员的一面: “今晚不把这段C++调通,老子就不睡了!” >>>未完,待续...
特色功能编辑 离线词典 电脑没联网,可以用词霸吗? 可以! 下载此版本金山词霸时,已经同时下载了英汉/汉英的词库,包含百万词条,可以满足基本查词需求。 浏览器划译 取词划译很好用,但新的浏览器支持吗? 支持!本版本全面支持IE9,Firefox9+,Chrome16+等最新浏览器。另外可以在PDF文件中的取词。独家的译中译功能,支持在取词划译框里再取词翻译,更便捷! 权威词典 软件查词不如纸质词典准确? 该版本包含147本版权词典,这些词典的纸质版总价值超过3000元!涵盖金融/法律/医学等多行业,80万专业词条。相当于您随身携带一书柜的词典哦! 真人语音 机器发音太生硬,想找老外来教我。 32万纯正英式、美式真人语音,特别针对长词、难词和词组。 另外还有强大TTS,中英文的句子都可以读! 情景例句 要说英语的各种场景,词霸集合了17种情景,上千组对话,通过搜索快速匹配最合适的情景表达。闲暇时,您还可以用它来学英语。出国游、外企面试、与老外聊天…都搞定! 汉语词典 遇到中文生僻字,词霸也可以帮我吗? 词霸内置超强悍汉语词典,从生僻字到流行语,发音、部首它全知道,还有笔画字教学哦!对于诗词、成语、名言等,可以一键查阅经典出处。教您更懂中文! 手机平台特色 -情景对话 -本地词典 -整句翻译 -中文百科 -记事本 -每日热词 -每日资讯 金山词霸是中国市场占有率最高的翻译软件,拥有超过3000万用户,金山词霸 4.0 提供海量词典、真人发音、整句翻译、情景会话等功能,为您提供卓越的翻译体验。 [2] [6] 金山词霸移动版编辑 Android版 金山词霸安卓版 [7] 软件大小:13.4 MB 软件运行界面 软件运行界面(5张) 软件语言:简体中文 软件性质:常用软件 软件授权:免费版 应用平台:Android 软件特点: 1.时尚UI设计,打造最强用户体验:此次UI改版,使用清新的六宫格模式,各个功能点一目了然,让您在使用时不再困惑。 2.智能语音识别,边说边查:新加入的语音识别功能提供三种输入方式,您可以说出英文单词的读音或字母拼,手机词霸能够快速识别并帮您完成查询。 3.开放的外挂词典下载,本地功能更强大:通过全新的资料中心功能,您可以量身定制属于自己的词典。而这些强大的词库资料全部是免费的。 4.更贴心的基本词典:释义、音标、发音、变形词、同反义词、搭配全面收录。 图册 图册(5张) 5.全面收录《柯林斯COBUILD高阶英汉双解学习词典》:权威学习型词典。集英汉、英英、例句于一体,内容精选于43亿词语、口语和书面语并重的语料库。 6.随身携带的单词本:如果您要准备考试,需要背诵大量的单词,那么新版词霸的生词本功能一定会帮助您。这里提供了贴心的排序、遮盖释义功能。不仅如此,词霸还可以帮您把生词数据在PC/网站/手机间实现同步,让您随时随地管理自己的生词。 7.全新改版资讯页,带图的每日系列:新版词霸在提供查词服务的同时,还提供精彩的双语阅读内容。包括“每日一句”“双语资讯”“情景会话”,每一块内容都是经过精挑细选,让您在英语学习的同时找到一份乐趣。 8.引进百度专业翻译引擎,长文本翻译一键搞定:如同PC上的翻译引擎一样,在手机上,您一样可以体验到同等质量的翻译效果。如果您经常阅读英文文件或是需要翻译短信、邮件等,翻译功能将是您最好的帮手。 IOS版 软件大小:59.0 MB 金山词霸的操作界面 金山词霸的操作界面 软件语言:简体中文 软件性质:常用软件 软件授权:免费版 应用平台:ios 功能特点: 1、更加贴心的基本词典 2、开放的外挂词典下载,本地功能更加充实 3、全面收录《柯林斯COBUI LD高阶英汉双解学习词典》 4、智能语音识别,边说边查 5、时尚的UI设计,打造最强的用户体验 6、随身携带的单词本 7、全新的资讯页改版,带图的每日系列 8、实用的翻译引擎,长文本翻译一键搞定 新界面与语音识别 金山词霸安卓版对UI进行了 一次翻新,改版后采用了六宫格风格,每个重要的功能一目了然、触手可及。在六个功能按钮的上方照例显示着输入框,用户可以手动输入中文或英文。就在这个输入框的一旁,是新增的语音识别功能。 [8] 在默认情况下,语音识别的语言为英文,你可以通过长按语音按钮切换语言,当然,你要是不嫌麻烦,在设置中也能进行更改。金山词霸给出的识别结果有时不仅仅只有一个备选项,而相 对来说,字母拼的方式更加准确。 单词与整句翻译 在手动输入单词时,金山词霸会显示多个联想词 和对应词组,并会显示出首选项的单词释义。选择单词后,金山词霸会显示出包括拼、音标、注释,了解基本释义后,可以借助联网查询浏览柯斯林词典、维基词 典、英英词典的详细翻译与例句。不想使用过多流量或不愿等待联网加载翻译结果的朋友可以下载词库,金山词霸支持 下载四种词库,他们可以满足你离线查看更多 单词翻译的需要。 [9] 整句翻译是许多手机翻译软件必有的功能之一,金山词霸的整句翻译可以正确互译一些简单的中英文句子或短语,不过倘若句式过于复杂,那么就像大多数的手机翻译软件一样,它很可能会给你一份半成品释义。 英语学习 在 使用手机翻译软件查询翻译结果后,你可以将单词收藏 到单词本中。金山词霸在PC端也有对应的客户端,通过在手机上登录金山账户,你可以将手机单词本中的生 词同步至服务器,在多个平台上同时浏览。不过,如果你没有账户,则需要在PC端注册,因为手机版金山词霸暂时不支持注册功能。 把单词存入生词本是学习英语的好方法,但在金山词霸中这绝对不是唯一的学习英语的方法。金山词霸可为用户提供“每日一句”、“双语资讯”和“情景会话”三类英文资讯。为你的英语学习提供更多资源。 小结 金山词霸的语音识别功能支持中英语识别,识别效果良好。同时还有一点值得一提的是,金山词霸将精品英语资讯和情景会话整合在一起,方便英语学习者随时浏览生动有趣的英语内容。 [9-10] PC版编辑 金山词霸 2012 正式版 金山词霸 2012是其宣布免费后全新改版的第二个版本,其UI设计加入了MIUI团队的协助,完全给人一种耳目一新、清新敏捷的感觉。而且在不到10M小巧身材中包含了147本词典的全面修整、优化与合并。本地词典更是包含四四级、考研、雅思、托福、GRE等全部热门考试高频词。全面收录了覆盖基于43亿大语料库海量内容的旗舰版《柯林斯词典》。整体格调简明轻快,并且没有广告困扰。那个离我们远去的金山词霸又回来啦! [1] 金山词霸 2012 特点 1、美观:MIUI协助设计,用户界面简洁明快! 2、体积小巧,内涵无限:全面收录基于43亿大语料库海量内容的旗舰版《柯林斯词典》; 3、翻译快速、准确;支持生词本同步、支持悬浮窗查词。 Ÿ特点 1.领先的C/S应用模式稳定灵活 《金山词霸2014企业版》的客户端验证方式十分灵活,运行稳定性极高。服务器端的安装流程同样简单便捷,同时支持离线激活机制,保证了验证操作的方便快速。而在多客户端的情况下,产品还支持同时激活机制,可以实现无需输入序列号自动注册,保证整体架构轻松扩容。 在产品管理层面,管理员可以通过服务器端实时掌握客户端的安装与运行状态,方便其灵活的调整客户端的安装信息。同时兼顾的实时备份功能,可以最大化的保障企业安全与利益。 [1] 2.海量权威词库支持离线查阅功能 《金山词霸2014企业版》支持XX种语言,完整收纳XX本权威词典,涵盖55们专业学科的行业词汇,词库量总计达到xxxxxxxxx万。包含《柯林斯COBUILD高阶英汉双解学习词典》、《现代英汉综合大辞典》、《七国语言大辞典》、《同义词辨析》、《美国口语词典》等。 [9] 3.32万真人纯正发音TTS电脑合成发音 《金山词霸2014企业版》采用真人英式/美式纯正发音,方便您准确纠正发音错误。此外,产品还集成中文普通话与英文TTS电脑合成发音,无论是单词还是句子都可以保证顺畅朗读。 4.一键支持整章中英翻译 产品内置的在线翻译引擎,可以全面支持文章整段或整篇的中英翻译,只需轻击翻译键便可轻松搞定。 5.屏幕取词高枕无忧 升级后的屏幕取词功能,除了支持主流浏览器屏幕取词,还可以截取邮件/英文网页/办公文档内的词汇。此外,新内置的OCR(OpticalCharacterRecognition)光学字符识别技术可以轻松截取PDF文档内的词汇。同时产品新增的译中译取词功能,可以方便用户在取词窗口中二次取词,真正实现取词无忧。 [1] 相关产品编辑 金山词霸2009企业版 专为企业用户量身定制。客户端验证灵活稳定,服务器端升级统一分发部署,全面实时监控管理,企业自编信息快捷推送。 金山词霸Mac版 Mac OS X上最清爽的查词体验。收录现代汉英/英汉词典,可以实现单词朗读,还能学习同反义词。 发展历程编辑 2015年 拍照取词用户体验提升, [1] [9] 增加传感器辅助提醒,首页单词增加考研词汇, [2] [9] 中文翻译结果的优化,阅读页功能栏悦读时隐藏,提示更新的网络环境判断:3G下不要提示,微博登陆页面中添加关注词霸官方微博。 2014年  词霸移动版7.0发布,采用更年轻、时尚的UI设计风格 [11] ,界面简洁清新,在保证原有词条数目不变基础上,将安装包压缩至原来的1/3,运行内存也大大降低。0.5秒极速启动,将查词与翻译融合,提供便捷、简单、准确的查词及翻译服务,专注提升用户查词体验,重新设计单词释义的排版,用户可定制释义类型,调整释义显示顺序,重新设计每日一句界面,增加点赞及评论功能,优化悦读界面,可个性化定制雅思、考研、四六级、美剧、时尚等英语资讯精选文章,精简生词本功能,优化生词本界面,提高生词复习和记忆效率,独特的一键退出功能,提供给用户快速退出应用的选择,化繁为简,去掉语音、拍照取词,生词本管理等体验未达预期的功能,无广告困扰。 [12] 2013年   手机版6.0彩虹版发布海量权威的词典内容,收录整合了141本版权词典,30余万真人语音,17个场景2000组常用对话, [1] 完整收录《柯林斯COBUILD高阶英汉双解学习词典》。除查词外,金山词霸新增中、英、日、韩、法、德、西班牙等七国语言翻译。词霸的单词本、双语资讯、每日一句等功能,让用户在查词之余可以更全方位地进行英语学习,是查词、学习、阅读的首选词典软件。 2012年    词霸手机版5.0发布, [13] 在移动端成为一款经典、权威、免费的词典软件。 2011年 2011 年发布《词霸2011本地增强版》包含百余万词条本地词典,电脑不联网也可以轻松查词。在360软件举办的网民最喜爱的软件评选中,荣获2011年最受欢迎的翻译类软件产品。 2010年 2010年6月发布《金山词霸2010牛津旗舰版》和《金山词霸2010牛津特惠版》。《金山词霸2010牛津旗舰版》包含6本牛津权威词典,分别为《新牛津英汉双解大词典》,《新牛津美语大词典》,《牛津英语习语词典》,《牛津英语搭配词典》,《牛津英语同义词词典》,《牛津短语动词词典》。《金山词霸2010牛津特惠版》包含2本牛津权威词典《新牛津英汉双解大词典》和《牛津英语习语词典》。 2009年 2009年6月,对应Symbian、iPhone、Android和Java的等多个手机平台的手机版金山词霸3.0正式发布,金山词霸进军移动互联网领域。 2008年 2008年5月,金山携手谷歌联合推出《谷歌金山词霸合作版》,一款全免费、灵巧易用的互联网产品,实现了向互联网的全面转型,十项全能,强势出击;2008年11月,《金山词霸2009牛津版》、《金山快译2009专业版》等词霸家族4款产品震撼上市,首次收录牛津系列权威词典。 2007年 2007 年5月,《金山词霸2007企业版》上市,获得北京市首批自主创新产品奖。《金山词霸2007企业版》是一套专为企业级用户设计的一款产品,此产品充分满足了企业对企业内部多用户的统一管理,通过服务器的集中设置,可以对SN,对增加企业级内部字典进行管理,从而使产品能更好满足企业级用户

23,406

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧