barriers / 阅读 / 详情

howmanyplacesdidtheypassby是什么意思

2023-05-19 15:22:30
共4条回复
皮皮

他们经过了多少地方?

北有云溪

应该是翻译为他们经过了多少地方

可可

他们经过了多少地方

可乐

他们已经走过多少地方了?

相关推荐

passby是什么意思。

passby?passboy?
2023-01-02 03:50:042

passby的中文

n. 旁路;过客vt. 迂回;经过希望可以帮助到你
2023-01-02 03:50:131

一次学会Pass相关的10个短语!

一次学会Pass相关的10个短语!Passout、Passover、Passaround…,这么多相似的单字你会分辨吗?EngVid讲师Adam这次要来教大家十个pass开头的片语!1.passup(on)传递机会。2.passon传递物品。3.passover越过、跳过。4.passthrough快速通过之意。5.passby路过、经过,短暂停留。6.passdown世代轮替、交棒;从高往低处递交7.passaway就是逝去、死亡之意。8.passout昏倒,像是酒喝太多不支倒地,就可用这个字9.passoff尝试说服他人一些想法的意思。10.passaround将一个物品依序传下去,每个人取用一些,再继续传递,类似“distribute(分配)”的感觉。图片来源:pixabaypass,passaround,passaround中文,passaway,passaway中文,passby,passby中文,passdown,passdown中文,passoff,passoff中文,passon,passon中文,passout,passout中文,passover,passover中文,passthrough,passthrough中文,passup,passup中文,pass中文,pass片语,pass相关片语
2023-01-02 03:50:191

passby经过,by是副词还是形容词,还是介

By 是介词后跟动词ing 形式pass 英[pɑ:s] 美[pæs] vt. 通过; 走过; 批准; 度过; vt. 传球; 及格; 发生; 不要; n. 通行证; 通道; 关口; 越过; [例句]As she passed the library door, the telephone began to ring她经过图书室门口时,电话响了。[其他] 第三人称单数:passes 现在分词:passing 过去式:passed过去分词:passed
2023-01-02 03:50:241

过客 英文

过客的英文翻译以下结果由译典通提供词典解释1.a passing traveller; a passer-by; a passing visitor这样可以么?
2023-01-02 03:50:306

"pass"和"pass by"的区别是?

pass by可以直接结尾,后面可以不加宾语,但是pass需要加宾语或者介词【例句】pass byThey were injured when a parked car exploded as their convoy passed by. 他们的车队经过时,一辆停放着的汽车爆炸了,他们受了伤。As they pass by, a piteous wailing is heard. 他们经过时,响起了令人哀怜的恸哭。passAs she passed the library door, the telephone began to ring她经过图书室门口时,电话响了。He passed through the doorway into Ward B他穿过门口进入B病房。pass    英[pɑ:s]    美[pæs]    vt.    通过; 走过; 批准; 度过;    vt.    传球; 及格; 发生; 不要;    n.    通行证; 通道; 关口; 越过;    [例句]As she passed the library door, the telephone began to ring她经过图书室门口时,电话响了。pass by    英[pɑ:s bai]    美[pæs baɪ]    [词典]    经过; 过去; 疏忽; 以…为人所知;    [例句]I see them pass by my house every day我每天看见他们从我家旁边经过。
2023-01-02 03:50:531

pass by和go by的区别

1.goby和passby是同义短语,都可指"经过"(某处),goby是动词+副词结构,意为"从......旁边经过"。2.passby意为"经过,通过,从......旁边经过",指经过人或物的面前或旁边而不停顿,也不注意所经过的人或物是谁。pass意为"经过",指在人或物的面前或旁边经过,侧重经过的动作。用passby时,侧重不加注意的意味,但在实际上,pass和passby常被毫无区别地使用。
2023-01-02 03:50:582

请帮我分析下 go by 、pass by、 go past的用法和区别

goby、passby、gopast的用法区别为:指代不同、用法不同、侧重点不同。一、指代不同1、goby:经过。2、passby:路过。3、gopast:走过。二、用法不同1、goby:go的基本意思是“离开原来的地方向别处挪动”。引申可表示“去,走,旅行,前进”“离开,离去”“死,垮,坏”“放弃,消失,停止存在”“处于…状态”。2、passby:pass的基本意思是“过”,如“走过”“通过”“经过”“度过”等,指逐渐地、平稳地转入另一种状况。可用于时间、季节、状态,也可用于其他抽象事物,如“考试”“审查”等,甚至可以表示生命转入死亡。3、gopast:作名词时的基本意思与动词相同,作“越过,通过”解,有时含有“越过障碍”的意味,是可数名词。作“通行证,许可证”解时,指准许在一定区域里通行的证件,引申可作“票据”解。三、侧重点不同1、goby:goby是动词+副词结构。2、passby:指经过人或物的面前或旁边而不停顿。3、gopast:指在人或物的面前或旁边经过,侧重经过的动作。
2023-01-02 03:51:074

passby和passingby的区别

timepassby,一般是说不经意的,时间就过去了,多表对时间有所惋惜.timegoesby,一般说来是在笔者有意识的情况下,随着时间的推移.
2023-01-02 03:51:321

passby的复数

passbies
2023-01-02 03:51:384

pass与passby在意义和语法上有何区别

没找到你想要的,但是给你推荐一个相似的,故事很精彩,书尾后面有开车(有实体书)。大唐女法医BY:袖唐
2023-01-02 03:51:551

单选题。passby是什么意思

经过,过去
2023-01-02 03:52:012

pass与 pass by区别

pass和pass by当经过讲的时候pass by可以直接结尾,后面可以不加宾语但是pass需要加宾语或者介词例句pass by1.They were injured when a parked car exploded as their convoy passed by. 他们的车队经过时,一辆停放着的汽车爆炸了,他们受了伤。2.As they pass by, a piteous wailing is heard. 他们经过时,响起了令人哀怜的恸哭。pass1.As she passed the library door, the telephone began to ring 她经过图书室门口时,电话响了。2.He passed through the doorway into Ward B 他穿过门口进入B病房。pass 英[pɑ:s] 美[pæs] vt. 通过; 走过; 批准; 度过; vt. 传球; 及格; 发生; 不要; n. 通行证; 通道; 关口; 越过; [例句]As she passed the library door, the telephone began to ring她经过图书室门口时,电话响了。pass by 英[pɑ:s bai] 美[pæs baɪ] [词典] 经过; 过去; 疏忽; 以…为人所知; [例句]I see them pass by my house every day我每天看见他们从我家旁边经过。
2023-01-02 03:52:103

passerby是什么意思?

行人,路过者的意思。词根是passby,意思是路过而er通常指的是...的人。所以就算不认识也可以猜出passerby是路人的意思
2023-01-02 03:52:212

passbylove 意思

逝去的爱
2023-01-02 03:52:372

一夜无眠的翻译是:什么意思

睡不着
2023-01-02 03:52:4611

请问pass by 和pass through的用法有什么不同?

passby1.经过;过去2.(时间)过去;错过有袖手旁观的意思passthrough经历;通过
2023-01-02 03:53:252

pass by与pass through有啥区别?

passby的经过主要是指物理上的,比如说有两车刚好passby,或者说指时间上的错过而passthrough的通过,指的是通过考试,克服困难等
2023-01-02 03:53:331

求英语高手,pass做词根什么意思?

通过。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
2023-01-02 03:53:424

ailwilipassby什么意思

ailwilipassby一切都会过去
2023-01-02 03:53:582

passby和gopast可以互换 吗?

pass by 词义上与 go past 相 同,是可以互换的。但是前者后面需要加宾语,因为by作介词,后者past做副词时不接,介词时接宾语,就是说名词可有可无。但一般后面有宾语的都常用pass by.
2023-01-02 03:54:061

howmanyplaceswillyoupassby为什么填by

在你的句子里面,by last term 的存在要求谓语动词用“过去完成时”had learnt .第二句也是如此-------by the end of last month .
2023-01-02 03:54:121

怎么判定汽车的噪声合格?

只知道,单位是分贝
2023-01-02 03:54:173

pass through 和 pass by 有什么区别?

passby的经过主要是指物理上的,比如说有两车刚好passby,或者说指时间上的错过而passthrough的通过,指的是通过考试,克服困难等
2023-01-02 03:54:292

How manyplacesdidtheypassby翻译成中文怎么读

你好,很高兴在这里回答你的问题:...他们经过了多少地方?
2023-01-02 03:54:381

through和by的区别

by侧重通过某种方式,through侧重穿过、透过。by,我们通常会见到以下六种用法:1、表示附近,例如nearby,passby,goby,sitbythewindow等。2、表示由某人做某事,例如ThenameoftheCompanyis“XXX”orsuchothernameornamesasmaybedesignatedbyManagementBoard。3、表示截止到为止,例如bytheyearof。4、表示乘坐某种交通工具,例如bytrain/plane/sea/ship/air等。5、表示通过某种方式,例如bymeansof,byemail等。6、表示原因,例如byreasonof。through的含义是穿过、通过,合同中常见的表达:1、Section(a)throughSection(e),从(a)款至(e)款,这里有”贯穿“的含义。2、TheFundmayinvestdirectlyand/orindirectlythroughaXXXFundtoachievetheforegoinggoals,基金可通过XXX基金直接和/或间接进行投资,以实现前述目标。3、throughfriendlynegotiation,通过友好协商。。另一个与上面两词意思相近的单词via,是指侧重通过某种媒介达到目的。via表达的意思是“经由某个人、某个区域、某个工具达到某个目的”,这里的“人、区域、工具”都是中间媒介,它们起着传递、连接等作用。
2023-01-02 03:54:431

pass by造句

pass by造句:1、Thus the early days of may passed by .就这样;五月的最初几天过去了。2、A long procession of years had passed by .悠长的岁月已经过去了。3、The motion was passed by an overwhelming majority .提案以压倒多数通过。4、People passing by skirted the pile of his belongings .往来行人绕开他那堆行李。5、We are passed by a fast-moving hooting car .鸣着喇叭的汽车从我们身旁迅速开过。
2023-01-02 03:55:341

pass by是什么意思,顺便讲解一下用法,谢了

passby经过;过去;疏忽;以…为人所知相关例句1.Astheypassby,apiteouswailingisheard.他们经过时,响起了令人哀怜的恸哭。2.Iseethempassbymyhouseeveryday.我每天看见他们从我家旁边经过。
2023-01-02 03:55:441

passby是什么意思

n. 旁路;过客vt. 迂回;经过
2023-01-02 03:55:501

pass的用法及搭配

1、pass可用作动词时,有通过,经过,度过等含义。可用作及物动词,也可用作不及物动词。用作名词时,基本意思与动词相同。2、pass用作动词:pass的基本含义是“过”,如“走过”“通过”“经过”“度过”等,指逐渐地、平稳地转入另一种状况。可用于时间、季节、状态,也可用于其他抽象事物,如“考试”“审查”等,甚至可以表示生命转入死亡。3、pass作“通过,经过,穿过”解时,可用作不及物动词,也可用作及物动词。用作不及物动词时常和副词搭配使用;用作及物动词时接名词或代词作宾语。4、passoff发生,停止passfor被当作passby经过;v.走过passover忽视,放过passaway逝世,消磨(时间)。5、passon传递,传授passalong沿...而过,传递。
2023-01-02 03:55:562

go past与pass by的区别

区别就是passby表示经过、路过、逝去的意思,pastby没有这个说法。pass是动词,与by够成词组passby表示经过、逝去等意思,常用语时间的流逝、伟人的逝去等。past可作名词,表示过去。可作形容词,表示过去的、结束的。不能与by组成词组。
2023-01-02 03:56:116

pass by pass down与pass off的用法区别

passby从...旁边经过;时间逝去忽视,遗漏避开,躲开passbyontheotherside不帮助,不同情passdown(=passalong)(世代)相传,传下来passoff进行到最后,完成停止,消失应付过去;克服不放在心上,置之不理骗入,
2023-01-02 03:56:342

请帮我分析下 go by 、pass by、 go past的用法和区别

goby、passby、gopast的用法区别为:指代不同、用法不同、侧重点不同。一、指代不同1、goby:经过。2、passby:路过。3、gopast:走过。二、用法不同1、goby:go的基本意思是“离开原来的地方向别处挪动”。引申可表示“去,走,旅行,前进”“离开,离去”“死,垮,坏”“放弃,消失,停止存在”“处于…状态”。2、passby:pass的基本意思是“过”,如“走过”“通过”“经过”“度过”等,指逐渐地、平稳地转入另一种状况。可用于时间、季节、状态,也可用于其他抽象事物,如“考试”“审查”等,甚至可以表示生命转入死亡。3、gopast:作名词时的基本意思与动词相同,作“越过,通过”解,有时含有“越过障碍”的意味,是可数名词。作“通行证,许可证”解时,指准许在一定区域里通行的证件,引申可作“票据”解。三、侧重点不同1、goby:goby是动词+副词结构。2、passby:指经过人或物的面前或旁边而不停顿。3、gopast:指在人或物的面前或旁边经过,侧重经过的动作。
2023-01-02 03:56:432

请帮我分析下 go by 、pass by、 go past的用法和区别

1.goby和passby是同义短语,都可指"经过"(某处),goby是动词+副词结构,意为"从......旁边经过"。2.passby意为"经过,通过,从......旁边经过",指经过人或物的面前或旁边而不停顿,也不注意所经过的人或物是谁。pass意为"经过",指在人或物的面前或旁边经过,侧重经过的动作。用passby时,侧重不加注意的意味,但在实际上,pass和passby常被毫无区别地使用。
2023-01-02 03:56:522

三只小猪 英语

t
2023-01-02 03:57:013

求pass、through、across这3个单词的用法。

pass的意思是“经过,通过关口”,比如passby.就是偶然路过的意思。另外,还有passtheexam,是通过考试的意思。through:指在内部穿过,例:穿过门,窗,森林,公园竺等across:指在表面穿过,例:穿过街道,河流,桥梁等
2023-01-02 03:57:131

Howmanyplacesdidtheypassby的回答是什么?

这句话中文是什么?还有你确定最后一个单词没打错嘛
2023-01-02 03:57:233

go by的中文意思?

goby1.经过;(时间)过去Timewentbyslowly.时光慢慢流逝。2.错过(机会等)3.依照Don"tgobythatoldmap.别参照那张旧地图。4.凭...判断Youcan"talwaysgobyappearances.你不能总是根据外表来判断。
2023-01-02 03:57:353

一切都会过去 英文怎么说

iknowallofthethingswillbepast;所有事情将会过去everythingwillbeokay;任何事都会变好的everythingwillbefine;事情将会变好thetimeispast,everythingwillbefineagain.时间在变,所有事情将会再一次变好
2023-01-02 03:57:472

go by的中文意思?

goby时光流逝Timewentbyslowly.时间慢慢逝去。顺便走访ShewasinwhenIwentbyyesterday.我昨天顺便去看她时,她正好在家。判断Youcan"tgobywhathesays;he"sveryuntrustworthy.你不能根据他的话判断,他是很不可靠的。
2023-01-02 03:57:563

go pass和go past的区别

在这里只能用 pass, 动词:一份联合国报告说,世界人口将在20世纪末超过60亿。区别如下:pass,past这两个词不是同义词,也不是近义词,但初学者容易用错。pass是动词,而past是介词,有时用作形容词或名词。当pass用作动词和past用作介词时,它们都有“过去”和“经过”的意思. 如:Three months passed and then one morning,Sam found his wallet outside his front door.三个月过去了,后来有一天上午,山姆在自己前门的外面发现了自己的钱包。I go past the post-office every day.我每天都从邮局经过。注:past用作形容词,是“过去的”意思,用作名词是“过去”的意思The past year was full of troubles. 过去的一年充满着困难。We knew nothing of his past. 关于他的过去情况我们一无所知。
2023-01-02 03:58:0712

"theycanpassbytwoplaces"这句话是什么意思?

他们经过了两个地方吗?
2023-01-02 03:59:002

Alfie的《Isobel》 歌词

歌曲名:Isobel歌手:Alfie专辑:Do You Imagine Things?I thought it was funny when you missed the trainWhen I rang you at home they said you left yesterdayI thought it was strange when your car was foundby the tree in Ennis where we used to hang aroundDear IsobelI hope you"re well and what you"ve done is rightOh it"s been such hellI wish you well and hope your safe tonightIt"s been a long day coming and long will it lastwhen it"s last day leaving, and I"m helping it passby loving you moreAnd who he would become, all the things he"d have donewould he have loved you, and not let you downand would he be stronger than his fatherdon"t punish yourself, leave it well aloneDear IsobelI hope you"re well and what you"ve done is rightOh it"s been such hellI wish you well and hope your safe tonightIt"s been a long day coming and long will it lastwhen it"s last day leaving, and I"m helping it passby loving you morehttp://music.baidu.com/song/2784900
2023-01-02 03:59:091

英语里说的一看二听三让四看半帮助是指那几个词?

不是"一看二听三让四看半帮助"而是"一感二听三让四看半帮助".一感:feel二听:hear,listento,三让:make,have,let五看:see,watch,lookat.observe,notice半帮助:help(指其后的不定式可带可不带to)这些动词后,如跟不定式作宾补,则在主动语态中,不定式不带to,但在被动语态中要带to,如:hefeltsomethingmovebesidehim...他感觉身边有什么东西在动。iheardthegirlsinganenglishsong.heoftenmakeshissistercry.hissisterisoftenmadetocry.haveyouseenayoungmanpassby?motherwatchedhersonplayinthepark.canyouhelpme(to)carrythebox?letmehaveatry.pleaselistentothemantellthestory.
2023-01-02 03:59:152

Bjork的《Isobel》 歌词

歌曲名:Isobel歌手:Bjork专辑:TelegramI thought it was funny when you missed the trainWhen I rang you at home they said you left yesterdayI thought it was strange when your car was foundby the tree in Ennis where we used to hang aroundDear IsobelI hope you"re well and what you"ve done is rightOh it"s been such hellI wish you well and hope your safe tonightIt"s been a long day coming and long will it lastwhen it"s last day leaving, and I"m helping it passby loving you moreAnd who he would become, all the things he"d have donewould he have loved you, and not let you downand would he be stronger than his fatherdon"t punish yourself, leave it well aloneDear IsobelI hope you"re well and what you"ve done is rightOh it"s been such hellI wish you well and hope your safe tonightIt"s been a long day coming and long will it lastwhen it"s last day leaving, and I"m helping it passby loving you morehttp://music.baidu.com/song/8769124
2023-01-02 03:59:241

一棵开花的树 英文版

原诗收藏,译文点赞,回译共勉! 一颗开花的树 原作:席慕容 英译:佚名 回译:行僧 20191106但愿相见佛引荐,相见最美那时间。虔诚祈求不间断,祈求长达五百年。但愿变树佛成全,必经之地马路边。百花齐放艳阳天,花朵寓意前世愿。当你走近细倾听,树叶涌动我情缘。当你走过这颗树,不辞而别去悄然。离去身后落一地,不是花瓣是心散。
2023-01-02 03:59:308

C语言怎样输入一个三位小数

#include <stdio.h>int main(){double a,b,c,sum;printf("Enter three double: ");scanf("%lf%lf%lf",&a,&b,&c);sum=(a+b+c)/3;printf("average=%f ",sum);}空里分别填”sum=(a+b+c)/3;“和”sum“。测试结果如下:扩展资料:特有特点1、C语言是一个有结构化程序设计、具有变量作用域(variablescope)以及递归功能的过程式语言。2、C语言传递参数均是以值传递(passbyvalue),另外也可以传递指针(apointerpassedbyvalue)。3、不同的变量类型可以用结构体(struct)组合在一起。4、只有32个保留字(reservedkeywords),使变量、函数命名有更多弹性。5、部份的变量类型可以转换,例如整型和字符型变量。6、通过指针(pointer),C语言可以容易的对存储器进行低级控制。7、预编译处理(preprocessor)让C语言的编译更具有弹性。
2023-01-02 04:00:121

java中参数传递方式

在 Java 应用程序中永远不会传递对象,而只传递对象引用。因此是按引用传递对象。Java应用程序按引用传递对象这一事实并不意味着 Java 应用程序按引用传递参数。参数可以是对象引用,而 Java 应用程序是按值传递对象引用的。对象是按引用传递的;Java 应用程序有且仅有的一种参数传递机制,即按值传递;按值传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的一个副本;按引用传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的内存地址,而不是值的副本。Java 应用程序中的变量可以为以下两种类型之一:引用类型或基本类型。当作为参数传递给一个方法时,处理这两种类型的方式是相同的。两种类型都是按值传递的;没有一种按引用传递。注:参数是按值而不是按引用传递的,说明 Java 应用程序有且仅有的一种参数传递机制,即按值传递。
2023-01-02 04:00:176

c语言,输入3个数求他们的平均值并输出,

程序代码如下:#include <stdio.h>int main(){int a,b,c,average;printf("a=");scanf("%d",&a);printf("b=");scanf("%d",&b);printf("c=");scanf("%d",&c);average=(a+b+c)/3;printf("a,b,c3个数字的平均值:%d",average);}扩展资料C语言特点(1)简洁的语言C语言包含有各种控制语句仅有9种,关键字也只有32 个,程序的编写要求不严格且多以小写字母为主,对许多不必要的部分进行了精简。实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统。(2)C语言是一种结构化的语言,提供的控制语句具有结构化特征,如for语句、if⋯else语句和switch语句等。可以用于实现函数的逻辑控制,方便面向过程的程序设计。(3)丰富的数据类型C语言包含的数据类型广泛,不仅包含有传统的字符型、整型、浮点型、数组类型等数据类型,还具有其他编程语言所不具备的数据类型,其中以指针类型数据使用最为灵活,可以通过编程对各种数据结构进行计算。(4)丰富的运算符c语言包含34个运算符,它将赋值、括号等均视作运算符来操作,使C程序的表达式类型和运算符类型均非常丰富。参考资料来源:百度百科—C语言
2023-01-02 04:00:386

集合已修改;枚举操作可能不会执行。

C#(C-Sharp)是Microsoft的新编程语言,被誉为“C/C++家族中第一种面向组件的语言”。然而,不管它自己宣称的是什么,许多人认为C#更像是Java的一种克隆,或者是Microsoft用来替代Java的产品。事实是否是这样的呢? 本文的比较结果表明,C#不止是Java的同胞那么简单。如果你是一个Java开发者,想要学习C#或者了解更多有关C#的知识,那么本文就是你必须把最初10分钟投入于其中的所在。一、C#、C++和Java C#的语言规范由Microsoft的Anders Hejlsberg与Scott Wiltamuth编写。在当前Microsoft天花乱坠的宣传中,对C#和C++、Java作一番比较总是很有趣的。考虑到当前IT媒体的舆论倾向,如果你早就知道C#更接近Java而不是C++,事情也不值得大惊小怪。对于刚刚加入这场讨论的读者,下面的表1让你自己作出判断。显然,结论应该是:Java和C#虽然不是孪生子,但C#最主要的特色却更接近Java而不是C++。表1:比较C#、C++和Java最重要的功能 功能 C# C++ Java 继承 允许继承单个类,允许实现多个接口 允许从多个类继承 允许继承单个类,允许实现多个接口 接口实现 通过“interface”关键词 通过抽象类 通过“interface”关键词 内存管理 由运行时环境管理,使用垃圾收集器 需要手工管理 由运行时环境管理,使用垃圾收集器 指针 支持,但只在很少使用的非安全模式下才支持。通常以引用取代指针 支持,一种很常用的功能。 完全不支持。代之以引用。 源代码编译后的形式 .NET中间语言(IL) 可执行代码 字节码 单一的公共基类 是 否 是 异常处理 异常处理 返回错误 异常处理。 了解表1总结的重要语言功能之后,请继续往下阅读,了解C#和Java的一些重要区别。二、语言规范的比较 2.1、简单数据类型 简单数据类型(Primitive)在C#中称为值类型,C#预定义的简单数据类型比Java多。例如,C#有unit,即无符号整数。表2列出了所有C#的预定义数据类型:表2:C#中的值类型 类型 说明 object 所有类型的最终极的基类 string 字符串类型;字符串是一个Unicode字符的序列 sbyte 8位带符号整数 short 16位带符号整数 int 32位带符号整数 long 64位带符号整数 byte 8位无符号整数 ushort 16位无符号整数 uint 32位无符号整数 ulong 64位无符号整数 float 单精度浮点数类型 double 双精度浮点数类型 bool 布尔类型;bool值或者是true,或者是false char 字符类型;一个char值即是一个Unicode字符 decimal 有28位有效数字的高精度小数类型 2.2、常量 忘掉Java中的static final修饰符。在C#中,常量可以用const关键词声明。public const int x = 55; 此外,C#的设计者还增加了readonly关键词。如果编译器编译时未能确定常量值,你可以使用readonly关键词。readonly域只能通过初始化器或类的构造函数设置。2.3、公用类的入口点 在Java中,公用类的入口点是一个名为main的公用静态方法。main方法的参数是String对象数组,它没有返回值。在C#中,main方法变成了公用静态方法Main(大写的M),Main方法的参数也是一个String对象数组,而且也没有返回值,如下面的原型声明所示:public static void Main(String[] args) 但是,C#的Main方法不局限于此。如果不向Main方法传递任何参数,你可以使用上述Main方法的一个重载版本,即不带参数列表的版本。也就是说,下面的Main方法也是一个合法的入口点:public static void Main() 另外,如果你认为有必要的话,Main方法还可以返回一个int。例如,下面代码中的Main方法返回1:using System;public class Hello {public static int Main() {Console.WriteLine("Done");return 1;}} 与此相对,在Java中重载main方法是不合法的。2.4、switch语句 在Java中,switch语句只能处理整数。但C#中的switch语句不同,它还能够处理字符变量。请考虑下面用switch语句处理字符串变量的C#代码:using System;public class Hello {public static void Main(String[] args) {switch (args[0]) {case "老板":Console.WriteLine("早上好!我们随时准备为您效劳!");break;case "雇员":Console.WriteLine("早上好!你可以开始工作了!");break;default:Console.WriteLine("早上好!祝你好运!");break;}}} 与Java中的switch不同,C#的switch语句要求每一个case块或者在块的末尾提供一个break语句,或者用goto转到switch内的其他case标签。2.5、foreach语句 foreach语句枚举集合中的各个元素,为集合中的每一个元素执行一次代码块。请参见下面的例子。using System;public class Hello {public static void Main(String[] args) {foreach (String arg in args)Console.WriteLine(arg);}}如果在运行这个执行文件的时候指定了参数,比如“Hello Peter Kevin Richard”,则程序的输出将是下面几行文字:PeterKevinRichard 2.6、C#没有>>>移位操作符 C#支持uint和ulong之类的无符号变量类型。因此,在C#中,右移操作符(即“>>”)对于无符号变量类型和带符号变量类型(比如int和long)的处理方式不同。右移uint和ulong丢弃低位并把空出的高位设置为零;但对于int和long类型的变量,“>>”操作符丢弃低位,同时,只有当变量值是正数时,“>>”才把空出的高位设置成零;如果“>>”操作的是一个负数,空出的高位被设置成为1。Java中不存在无符号的变量类型。因此,我们用“>>>”操作符在右移时引入负号位;否则,使用“>>”操作符。2.7、goto关键词 Java不用goto关键词。在C#中,goto允许你转到指定的标签。不过,C#以特别谨慎的态度对待goto,比如它不允许goto转入到语句块的内部。在Java中,你可以用带标签的语句加上break或continue取代C#中的goto。2.8、声明数组 在Java中,数组的声明方法非常灵活,实际上有许多种声明方法都属于合法的方法。例如,下面的几行代码是等价的:int[] x = { 0, 1, 2, 3 };int x[] = { 0, 1, 2, 3 }; 但在C#中,只有第一行代码合法,[]不能放到变量名字之后。2.9、包 在C#中,包(Package)被称为名称空间。把名称空间引入C#程序的关键词是“using”。例如,“using System;”这个语句引入了System名称空间。然而,与Java不同的是,C#允许为名称空间或者名称空间中的类指定别名:using TheConsole = System.Console;public class Hello {public static void Main() {TheConsole.WriteLine("使用别名");}} 虽然从概念上看,Java的包类似于.NET的名称空间。然而,两者的实现方式不同。在Java中,包的名字同时也是实际存在的实体,它决定了放置.java文件的目录结构。在C#校�锢淼陌�吐呒�拿�浦�涫峭耆�掷氲模�簿褪撬担��瓶占涞拿�植换岫晕锢淼拇虬�绞讲��魏斡跋臁T贑#中,每一个源代码文件可以从属于多个名称空间,而且它可以容纳多个公共类。.NET中包的实体称为程序集(Assembly)。每一个程序集包含一个manifest结构。manifest列举程序集所包含的文件,控制哪些类型和资源被显露到程序集之外,并把对这些类型和资源的引用映射到包含这些类型与资源的文件。程序集是自包含的,一个程序集可以放置到单一的文件之内,也可以分割成多个文件。.NET的这种封装机制解决了DLL文件所面临的问题,即臭名昭著的DLL Hell问题。2.10、默认包 在Java中,java.lang包是默认的包,它无需显式导入就已经自动包含。例如,要把一些文本输出到控制台,你可以使用下面的代码:System.out.println("Hello world from Java"); C#中不存在默认的包。如果要向控制台输出文本,你使用System名称空间Console对象的WriteLine方法。但是,你必须显式导入所有的类。代码如下:using System;public class Hello {public static void Main() {Console.WriteLine("Hello world from C#");}} 2.11、面向对象 Java和C#都是完全面向对象的语言。在面向对象编程的三大原则方面,这两种语言接近得不能再接近。继承:这两种语言都支持类的单一继承,但类可以实现多个接口。所有类都从一个公共的基类继承。 封装与可见性:无论是在Java还是C#中,你都可以决定类成员是否可见。除了C#的internal访问修饰符之外,两者的可见性机制非常相似。 多态性:Java和C#都支持某些形式的多态性机制,且两者实现方法非常类似。2.12、可访问性 类的每个成员都有特定类型的可访问性。C#中的访问修饰符与Java中的基本对应,但多出了一个internal。简而言之,C#有5种类型的可访问性,如下所示:public:成员可以从任何代码访问。 protected:成员只能从派生类访问。 internal:成员只能从同一程序集的内部访问。 protected internal:成员只能从同一程序集内的派生类访问。 private:成员只能在当前类的内部访问。2.13、派生类 在Java中,我们用关键词“extends”实现继承。C#采用了C++的类派生语法。例如,下面的代码显示了如何派生父类Control从而创建出新类Button:public class Button: Control { . . } 2.14、最终类 由于C#中不存在final关键词,如果想要某个类不再被派生,你可以使用sealed关键词,如下例所示:sealed class FinalClass { . . } 2.15、接口 接口这个概念在C#和Java中非常相似。接口的关键词是interface,一个接口可以扩展一个或者多个其他接口。按照惯例,接口的名字以大写字母“I”开头。下面的代码是C#接口的一个例子,它与Java中的接口完全一样:interface IShape { void Draw(); } 扩展接口的语法与扩展类的语法一样。例如,下例的IRectangularShape接口扩展IShape接口(即,从IShape接口派生出IRectangularShape接口)。interface IRectangularShape: IShape { int GetWidth(); } 如果你从两个或者两个以上的接口派生,父接口的名字列表用逗号分隔,如下面的代码所示:interface INewInterface: IParent1, IParent2 { } 然而,与Java不同,C#中的接口不能包含域(Field)。另外还要注意,在C#中,接口内的所有方法默认都是公用方法。在Java中,方法声明可以带有public修饰符(即使这并非必要),但在C#中,显式为接口的方法指定public修饰符是非法的。例如,下面的C#接口将产生一个编译错误。interface IShape { public void Draw(); } 2.16、is和as操作符 C#中的is操作符与Java中的instanceof操作符一样,两者都可以用来测试某个对象的实例是否属于特定的类型。在Java中没有与C#中的as操作符等价的操作符。as操作符与is操作符非常相似,但它更富有“进取心”:如果类型正确的话,as操作符会尝试把被测试的对象引用转换成目标类型;否则,它把变量引用设置成null。为正确理解as操作符,首先请考虑下面这个例子中is操作符的运用。这个例子包含一个IShape接口,以及两个实现了IShape接口的类Rectangle和Circle。using System;interface IShape {void draw();}public class Rectangle: IShape {public void draw() {}public int GetWidth() {return 6;}}public class Circle: IShape {public void draw() {}public int GetRadius() {return 5;}}public class LetsDraw {public static void Main(String[] args) {IShape shape = null;if (args[0] == "rectangle") {shape = new Rectangle();}else if (args[0] == "circle") {shape = new Circle();}if (shape is Rectangle) {Rectangle rectangle = (Rectangle) shape;Console.WriteLine("Width : " + rectangle.GetWidth());}if (shape is Circle) {Circle circle = (Circle) shape;Console.WriteLine("Radius : " + circle.GetRadius());}}}编译好代码之后,用户可以输入“rectangle”或者“circle”作为Main方法的参数。如果用户输入的是“circle”,则shape被实例化成为一个Circle类型的对象;反之,如果用户输入的是“rectangle”,则shape被实例化成为Rectangle类型的对象。随后,程序用is操作符测试shape的变量类型:如果shape是一个矩形,则shape被转换成为Rectangle对象,我们调用它的GetWidth方法;如果shape是一个圆,则shape被转换成为一个Circle对象,我们调用它的GetRadius方法。如果使用as操作符,则上述代码可以改成如下形式:using System;interface IShape {void draw();}public class Rectangle: IShape {public void draw() {}public int GetWidth() {return 6;}}public class Circle: IShape {public void draw() {}public int GetRadius() {return 5;}}public class LetsDraw {public static void Main(String[] args) {IShape shape = null;if (args[0] == "rectangle") {shape = new Rectangle();}else if (args[0] == "circle") {shape = new Circle();}Rectangle rectangle = shape as Rectangle;if (rectangle != null) {Console.WriteLine("Width : " + rectangle.GetWidth());}else {Circle circle = shape as Circle;if (circle != null)Console.WriteLine("Radius : " + circle.GetRadius());}}}在上面代码的粗体部分中,我们在没有测试shape对象类型的情况下,就用as操作符把shape转换成Rectangle类型的对象。如果shape正好是一个Rectangle,则shape被转换成为Rectangle类型的对象并保存到rectangle变量,然后我们调用它的GetWidth方法。如果这种转换失败,则我们进行第二次尝试。这一次,shape被转换成为Circle类型的对象并保存到circle变量。如果shape确实是一个Circle对象,则circle现在引用了一个Circle对象,我们调用它的GetRadius方法。2.17、库 C#没有自己的类库。但是,C#共享了.NET的类库。当然,.NET类库也可以用于其他.NET语言,比如VB.NET或者JScript.NET。值得一提的是StringBuilder类,它是对String类的补充。StringBuilder类与Java的StringBuffer类非常相似。2.18、垃圾收集 C++已经让我们认识到手工管理内存是多么缺乏效率和浪费时间。当你在C++中创建了一个对象,你就必须手工地拆除这个对象。代码越复杂,这个任务也越困难。Java用垃圾收集器来解决这个问题,由垃圾收集器搜集不再使用的对象并释放内存。C#同样采用了这种方法。应该说,如果你也在开发一种新的OOP语言,追随这条道路是一种非常自然的选择。C#仍旧保留了C++的内存手工管理方法,它适合在速度极端重要的场合使用,而在Java中这是不允许的。2.19、异常处理 如果你听说C#使用与Java相似的异常处理机制,你不会为此而惊讶,对吧?在C#中,所有的异常都从一个名为Exception的类派生(听起来很熟悉?)另外,正如在Java中一样,你还有熟悉的try和catch语句。Exception类属于.NET System名称空间的一部分。三、Java没有的功能 C#出生在Java成熟之后,因此,C#拥有一些Java(目前)还没有的绝妙功能也就不足为奇。3.1、枚举器 枚举器即enum类型(Enumerator,或称为计数器),它是一个相关常量的集合。精确地说,enum类型声明为一组相关的符号常量定义了一个类型名字。例如,你可以创建一个名为Fruit(水果)的枚举器,把它作为一个变量值的类型使用,从而把变量可能的取值范围限制为枚举器中出现的值。public class Demo {public enum Fruit {Apple, Banana, Cherry, Durian}public void Process(Fruit fruit) {switch (fruit) {case Fruit.Apple:...break;case Fruit.Banana:...break;case Fruit.Cherry:...break;case Fruit.Durian:...break;}}}在上例的Process方法中,虽然你可以用int作为myVar变量的类型,但是,使用枚举器Fruit之后,变量的取值范围限制到了Applet、Banana、Cherry和Durian这几个值之内。与int相比,enum的可读性更好,自我说明能力更强。3.2、结构 结构(Struct)与类很相似。然而,类是作为一种引用类型在堆中创建,而结构是一种值类型,它存储在栈中或者是嵌入式的。因此,只要谨慎运用,结构要比类快。结构可以实现接口,可以象类一样拥有成员,但结构不支持继承。然而,简单地用结构来取代类可能导致惨重损失。这是因为,结构是以值的方式传递,由于这种传递方式要把值复制到新的位置,所以传递一个“肥胖的”结构需要较大的开销。而对于类,传递的时候只需传递它的引用。下面是一个结构的例子。注意它与类非常相似,只要把单词“struct”替换成“class”,你就得到了一个类。struct Point {public int x, y;public Point(int x, int y) {this.x = x;this.y = y;}}3.3、属性 C#类除了可以拥有域(Field)之外,它还可以拥有属性(Property)。属性是一个与类或对象关联的命名的特征。属性是域的一种自然扩展――两者都是有类型、有名字的类成员。然而,和域不同的是,属性不表示存储位置;相反,属性拥有存取器(accessor),存取器定义了读取或者写入属性值时必须执行的代码。因此,属性提供了一种把动作和读取、写入对象属性值的操作关联起来的机制,而且它们允许属性值通过计算得到。在C#中,属性通过属性声明语法定义。属性声明语法的第一部分与域声明很相似,第二部分包括一个set过程和/或一个get过程。例如,在下面的例子中,PropertyDemo类定义了一个Prop属性。public class PropertyDemo {private string prop;public string Prop {get {return prop;}set {prop = value;}}}如果属性既允许读取也允许写入,如PropertyDemo类的Prop属性,则它同时拥有get和set存取过程。当我们读取属性的值时,get存取过程被调用;当我们写入属性值时,set存取过程被调用。在set存取过程中,属性的新值在一个隐含的value参数中给出。与读取和写入域的方法一样,属性也可以用同样的语法读取和写入。例如,下面的代码实例化了一个PropertyDemo类,然后写入、读取它的Prop属性。PropertyDemo pd = new PropertyDemo();pd.Prop = "123"; // setstring s = pd.Prop; // get3.4、以引用方式传递简单数据类型的参数 在Java中,当你把一个简单数据类型的值作为参数传递给方法时,参数总是以值的方式传递――即,系统将为被调用的方法创建一个参数值的副本。在C#中,你可以用引用的方式传递一个简单数据类型的值。此时,被调用的方法将直接使用传递给它的那个值――也就是说,如果在被调用方法内部修改了参数的值,则原来的变量值也随之改变。在C#中以引用方式传递值时,我们使用ref关键词。例如,如果编译并运行下面的代码,你将在控制台上看到输出结果16。注意i值被传递给ProcessNumber之后是如何被改变的。using System;public class PassByReference {public static void Main(String[] args) {int i = 8;ProcessNumber(ref i);Console.WriteLine(i);}public static void ProcessNumber(ref int j) {j = 16;}}C#中还有一个允许以引用方式传递参数的关键词out,它与ref相似。但是,使用out时,作为参数传递的变量在传递之前不必具有已知的值。在上例中,如果整数i在传递给ProcessNumber方法之前没有初始化,则代码将出错。如果用out来取代ref,你就可以传递一个未经初始化的值,如下面这个修改后的例子所示。using System;public class PassByReference {public static void Main(String[] args) {int i;ProcessNumber(out i);Console.WriteLine(i);}public static void ProcessNumber(out int j) {j = 16;}}经过修改之后,虽然i值在传递给ProcessNumber方法之前没有初始化,但PassByReference类能够顺利通过编译。3.5、C#保留了指针 对于那些觉得自己能够恰到好处地运用指针并乐意手工进行内存管理的开发者来说,在C#中,他们仍旧可以用既不安全也不容易使用的“古老的”指针来提高程序的性能。C#提供了支持“不安全”(unsafe)代码的能力,这种代码能够直接操作指针,能够“固定”对象以便临时地阻止垃圾收集器移动对象。无论从开发者还是用户的眼光来看,这种对“不安全”代码的支持其实是一种安全功能。“不安全”的代码必须用unsafe关键词显式地标明,因此开发者不可能在无意之中使用“不安全”的代码。同时,C#编译器又和执行引擎协作,保证了“不安全”的代码不能伪装成为安全代码。using System;class UsePointer {unsafe static void PointerDemo(byte[] arr) {..}}C#中的unsafe代码适合在下列情形下使用:当速度极端重要时,或者当对象需要与现有的软件(比如COM对象或者DLL形式的C代码)交互时。3.6、代理 代理(delegate)可以看作C++或者其他语言中的函数指针。然而,与函数指针不同的是,C#中的代理是面向对象的、类型安全的、可靠的。而且,函数指针只能用来引用静态函数,但代理既能够引用静态方法,也能够引用实例方法。代理用来封装可调用方法。你可以在类里面编写方法并在该方法上创建代理,此后这个代理就可以被传递到第二个方法。这样,第二个方法就可以调用第一个方法。代理是从公共基类System.Delegate派生的引用类型。定义和使用代理包括三个步骤:声明,创建实例,调用。代理用delegate声明语法声明。例如,一个不需要参数且没有返回值的代理可以用如下代码声明:delegate void TheDelegate(); 创建代理实例的语法是:使用new关键词,并引用一个实例或类方法,该方法必须符合代理指定的特征。一旦创建了代理的实例,我们就可以用调用方法的语法调用它。3.7、包装和解除包装 在面向对象的编程语言中,我们通常使用的是对象。但为了提高速度,C#也提供了简单数据类型。因此,C#程序既包含一大堆的对象,又有大量的值。在这种环境下,让这两者协同工作始终是一个不可回避的问题,你必须要有一种让引用和值进行通信的方法。在C#以及.NET运行时环境中,这个“通信”问题通过包装(Boxing)和解除包装(Unboxing)解决。包装是一种让值类型看起来象引用类型的处理过程。当一个值类型(简单数据类型)被用于一个要求或者可以使用对象的场合时,包装操作自动进行。包装一个value-type值的步骤包括:分配一个对象实例,然后把value-type值复制到对象实例。解除包装所执行的动作与包装相反,它把一个引用类型转换成值类型。解除包装操作的步骤包括:首先检查并确认对象实例确实是给定value-type的一个经过包装的值,然后从对象实例复制出值。Java对该问题的处理方式略有不同。Java为每一种简单数据类型提供了一个对应的类封装器。例如,用Integer类封装int类型,用Byte类封装byte类型。【结束语】本文为你比较了C#和Java。这两种语言很相似,然而,说C#是Java的克隆或许已经大大地言过其实。面向对象、中间语言这类概念并不是什么新东西。如
2023-01-02 04:01:041