DNA 比对,让 C# 认祖归宗
来源:百度文库 编辑:神马文学网 时间:2024/04/26 08:55:32
DNA 比对,让 C# 认祖归宗
近来 DNA 一词很朗朗上口,DNA 可以用来确认失散已久的亲属,用来算男人的风流胡涂帐,也可以帮助刑案现场蛛丝马迹的鉴识。
看了金凯瑞(Jim Carrey)主演的「一个头两个大(Me, Myself & Irene)」,我很是同情他在片中的遭遇。夫妻俩都是白人,却生出三个黑宝宝,这么明显的事,连 DNA 比对都可以不用了。不过,金凯瑞依然消极地不肯承认这样的事实。
别以为这只是电影,真实世界也正在上演一段人伦悲剧。尽管诸多事实摆在眼前,还真的有人老是唤别人为亲爹,对亲爹却视而不见呢!我说的是微软新创的程序语言 C#,号称是源自 C/C++,而非「Java」。这点引起许多人的质疑,大家都认为 C# 是源自 Java。为了让 C# 认祖归宗,我特地写了这篇文章,从程序语言的 DNA 来分析他们的血缘关系。
染色体 1:纯对象导向语言
C# 和 Java 都是纯对象导向语言,C++ 非纯对象导向语言。
染色体 2:强制型态检查
C# 和 Java 都强制进行型态检查,C++ 则较宽松。
染色体 3:宏
C# 和 Java 都不支持宏,C++ 支持宏。
染色体 4:Template
C# 和 Java 都不支持 template,C++ 支持 template。
染色体 5:多重继承
C# 和 Java 都不支持多重继承,且都支持 interface,C++ 支持多重继承。
染色体 6:指针
C# 和 Java 都不支持指针,C++ 支持指针。(不过,C# 允许在 unsafe code 内使用指针)
染色体 7:内存管理
C# 和 Java 都支持垃圾收集。C++ 不支持垃圾收集。
染色体 8:虚拟机器
C# 和 Java 都需要虚拟机器,C++ 不需要虚拟机器。Java 的执行档是中间码,叫做 bytecode,透过 Java Runtime Environment(即 JRE)来执行;C# 的执行档也是中间码,叫做 managed code,透过 NGWS Runtime 来执行。除了 Java,你也可以用其它程序语言(例如 Ada、Python)来作出 bytecode。除了 C#,你也可以用其它程序语言(例如 Visual Basic、C++)来作出 managed code。
染色体 9:Namespace
C# 和 Java 都支持阶层式的 namespace,但 C++ 只支持单层的 namespace。Java 的 namespace 称为 package,C# 的 namespace 就称为 namespace。Java 和 C# 都使用「.」当作 namespace 的符号,而 C++ 使用「::」。
染色体 10:Platform-Independent Type
C# 和 Java 都使用 Platform-Independent Type,C++ 的 type 会受到平台的影响。
染色体 11:使用 Wrapper 包装基本型态
C# 和 Java 都支持将基本型态包装成对象,在 Java 叫做 wrapper,在 C# 则是叫做 box。
染色体 12:boolean != integer
C# 和 Java 都不允许把整数当布尔值用,C++ 则允许。
染色体 13:access modifier
C# 和 Java 都支持四种等级的 access modifier,包括 public、protected、private、default/internal;C++ 只支持 public、protected、private。Java 的 default(不写)指的就是只针对同一个 package 开放,正好就是 C# 的 internal。
染色体 14:变量初始化
C# 和 Java 都规定不可使用未初始化的变量,C++ 则完全没有这方面的限制。Java 和 C# 的编译器都会主动帮未初始化的 field/data member 设定初始值,C++ 则不然。
染色体 15:转型
C# 和 Java 都规定基本型态和 reference 型态不能互转。
染色体 16:数组边界检查
C# 和 Java 都会主动进行数组边界检查,C++ 则不然
染色体 17:呼叫 Native Code
C# 和 Java 都支持呼叫 native code。Java 透过 JNI(Java Native Interface);C# 透过 PInvoke(Platform Invocation Service)
染色体 18:Metadata
C# 和 Java 的中间码都包含有类别的 metadata,而 C 语言则是独立在 header file。
染色体 19:中间码指令
C# 的 IL 中间码指令和 Java 的 bytecode 指令非常类似,有的甚至一样。
染色体 20:例外处理
C# 和 Java 都支持 try/catch/finally,但 C++ 只支持 try/catch。
你觉得够多了吗?...... 我还没全部列完呢!虽然仍有部分的特色比较像 C/C++,但是大部分重要的特色都还是和 Java 一致。
「吻合的染色体指证历历,证据!证据!这么多证据还不够吗?」我对 C# 怒斥:「还不快对 Java 叫声爹。」
-------------------------------------------------------------------------------------------
这个家伙很懒,什么也没留下......
近来 DNA 一词很朗朗上口,DNA 可以用来确认失散已久的亲属,用来算男人的风流胡涂帐,也可以帮助刑案现场蛛丝马迹的鉴识。
看了金凯瑞(Jim Carrey)主演的「一个头两个大(Me, Myself & Irene)」,我很是同情他在片中的遭遇。夫妻俩都是白人,却生出三个黑宝宝,这么明显的事,连 DNA 比对都可以不用了。不过,金凯瑞依然消极地不肯承认这样的事实。
别以为这只是电影,真实世界也正在上演一段人伦悲剧。尽管诸多事实摆在眼前,还真的有人老是唤别人为亲爹,对亲爹却视而不见呢!我说的是微软新创的程序语言 C#,号称是源自 C/C++,而非「Java」。这点引起许多人的质疑,大家都认为 C# 是源自 Java。为了让 C# 认祖归宗,我特地写了这篇文章,从程序语言的 DNA 来分析他们的血缘关系。
染色体 1:纯对象导向语言
C# 和 Java 都是纯对象导向语言,C++ 非纯对象导向语言。
染色体 2:强制型态检查
C# 和 Java 都强制进行型态检查,C++ 则较宽松。
染色体 3:宏
C# 和 Java 都不支持宏,C++ 支持宏。
染色体 4:Template
C# 和 Java 都不支持 template,C++ 支持 template。
染色体 5:多重继承
C# 和 Java 都不支持多重继承,且都支持 interface,C++ 支持多重继承。
染色体 6:指针
C# 和 Java 都不支持指针,C++ 支持指针。(不过,C# 允许在 unsafe code 内使用指针)
染色体 7:内存管理
C# 和 Java 都支持垃圾收集。C++ 不支持垃圾收集。
染色体 8:虚拟机器
C# 和 Java 都需要虚拟机器,C++ 不需要虚拟机器。Java 的执行档是中间码,叫做 bytecode,透过 Java Runtime Environment(即 JRE)来执行;C# 的执行档也是中间码,叫做 managed code,透过 NGWS Runtime 来执行。除了 Java,你也可以用其它程序语言(例如 Ada、Python)来作出 bytecode。除了 C#,你也可以用其它程序语言(例如 Visual Basic、C++)来作出 managed code。
染色体 9:Namespace
C# 和 Java 都支持阶层式的 namespace,但 C++ 只支持单层的 namespace。Java 的 namespace 称为 package,C# 的 namespace 就称为 namespace。Java 和 C# 都使用「.」当作 namespace 的符号,而 C++ 使用「::」。
染色体 10:Platform-Independent Type
C# 和 Java 都使用 Platform-Independent Type,C++ 的 type 会受到平台的影响。
染色体 11:使用 Wrapper 包装基本型态
C# 和 Java 都支持将基本型态包装成对象,在 Java 叫做 wrapper,在 C# 则是叫做 box。
染色体 12:boolean != integer
C# 和 Java 都不允许把整数当布尔值用,C++ 则允许。
染色体 13:access modifier
C# 和 Java 都支持四种等级的 access modifier,包括 public、protected、private、default/internal;C++ 只支持 public、protected、private。Java 的 default(不写)指的就是只针对同一个 package 开放,正好就是 C# 的 internal。
染色体 14:变量初始化
C# 和 Java 都规定不可使用未初始化的变量,C++ 则完全没有这方面的限制。Java 和 C# 的编译器都会主动帮未初始化的 field/data member 设定初始值,C++ 则不然。
染色体 15:转型
C# 和 Java 都规定基本型态和 reference 型态不能互转。
染色体 16:数组边界检查
C# 和 Java 都会主动进行数组边界检查,C++ 则不然
染色体 17:呼叫 Native Code
C# 和 Java 都支持呼叫 native code。Java 透过 JNI(Java Native Interface);C# 透过 PInvoke(Platform Invocation Service)
染色体 18:Metadata
C# 和 Java 的中间码都包含有类别的 metadata,而 C 语言则是独立在 header file。
染色体 19:中间码指令
C# 的 IL 中间码指令和 Java 的 bytecode 指令非常类似,有的甚至一样。
染色体 20:例外处理
C# 和 Java 都支持 try/catch/finally,但 C++ 只支持 try/catch。
你觉得够多了吗?...... 我还没全部列完呢!虽然仍有部分的特色比较像 C/C++,但是大部分重要的特色都还是和 Java 一致。
「吻合的染色体指证历历,证据!证据!这么多证据还不够吗?」我对 C# 怒斥:「还不快对 Java 叫声爹。」
-------------------------------------------------------------------------------------------
这个家伙很懒,什么也没留下......
DNA 比对,让 C# 认祖归宗
C#中对AxSpreadsheet控件的操作
C#对Microsoft.VisualBasic My对象妙用
非婚生女 比對DNA可認祖歸宗|社會新聞|中時電子報
让人惊讶的“垃圾”DNA新发现,2012人类DNA升级可能的科学原理
认祖归宗 敬拜真神
网上也可认祖归宗
科学家发现垃圾DNA对基因调控的作用
c# 正则表达式对网页进行有效内容抽取
使用GDI+对图像处理的一些C#代码
中华民族到了认祖归宗的时候
杨锦麟:对马英九应比对陈水扁更有戒心
DNA:七害杂忆
DNA蛋白质
毛毛虫-DNA
DNA复制
揭示DNA
DNA指纹
工作DNA
中华民族到了认祖归宗的时候:shipin
红罐王老吉2012年“认祖归宗”?
红罐王老吉2012年“认祖归宗”?-行业资讯
怎样在C#里对xml文件进行修改,新增,删除,插入操作?
请问double型的数据值范围对小数位数有限制吗? .NET技术 / C#