“没有理由不从C++转到C#”,该怎么理解这句话? 《C#入门经典(第三版)》前言里的一句话。C++就这么被C#吃了么?有些惆怅地说! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 C++的下一版本就是C#,这么说,不知道算不算准确....C的下一版本就是c++惆怅个啥? 如果说的是没有理由不从VC++转到C#的话这个我到相信如果说的是C++,那说这个话的人可以去XX了 不一定,看你要開發什麼了。桌面程序還是C#好些。驅動和地層的開發還是C/C++的天下。 同意freetofly() 的说法C#替代VC++的话我还能够理解,能够替代C++的话可能有点过分了。 我的意思是VC开发的一些应用系统,VC#都能开发吗? 就语言特性方面来说,C++是大人玩的,C#是小孩子玩的东西,C和C++基本上不是一类的东西,用C的话,关心的是内存的读写,中断处理,....基本上,谁都不能代替谁,嵌入式开发都是C的天下,C++都不一定能沾的上边,database开发这边,C#很好用,C++写database的程序也很麻烦。 c写系统,c++写驱动和底层,c#写信息管理应用软件是不是这个道理呢?! 没有理由从C++转到C#到网上找找工就知道了其实C#的工资,待遇,带来的激情远远不如C++用C++写出来的,可以很自豪,用c#写出来的很难达到自豪 C#骂C++ C++骂C#大家一起骂出问题的人 C++应该是一个过渡,从C语言到C#当中的转变, 从C语言到C#当中的转变----谁会从C转到C#??C写得好,起码是七八千的收入,我倒是从C#转到C了 C++开发的一些应用系统,C#都能开发吗?当然能了,C++是用转头见大厦,C#是用构件见大厦,我的理解 各有各的用处。系统是一层一层架起来的。C++用来做需要考虑细节方面的东西。C#基于功能强大的类库用来做不需要或者在成本上不允许或者在理论上不可能考虑细节的东西,比方说复杂数据库系统的开发。C本身也不是考虑了所有细节的语言,只是相比较于其他高级语言考虑了更多系统内部的东西。任何工具都在自己的领域发挥作用,能够自立门户,被大家长期接受的工具都有自己的专长和优势。都是有存在价值的。而迷信某一种工具,盲目运用到所有领域才是要不得的。没有失败的工具。只有失败的懒惰的程序员。如果我们需要研究到“足够”深入。那么就不是软件所能够描述的。而是数学物理方程所表达的晶体管物理特性了。但是,会有人用物理方法去编程么?没有。软件属于上层的系统。它的特性是独立于硬件系统的物理特性的。物理不能描述软件系统的特性。而没有物理,连硬件都不会有,更谈不上软件技术了。软件技术和物理方程都是有用的东西。但是他们工作在不同的层面上。谁也不能代替谁。而软件与物理的关系就类似于c++与c#的关系。 > 没有理由不从 C++ 转到C#错! .net不过是给大家编程提供了另一个选择,怎么招惹大家了这么不开心。善哉…… 要是c++厉害的 人还学习c#做什么啊,c++的工资技术高多了,只是说你在学习c++又不知道怎么入门就快点转c#吧 C++是不会被C#吃掉的,C++由他自己的独到之处。现在的C++程序员还是香饽饽啊!!!!!!!!个人觉得C++很强大!! 顶级程序员写的程序很少有人能看懂,一般用C;高级程序员写的程序高级程序员都能看懂,一般用C++;中级程序员写的程序程序员是个人就能看懂,一般用C#;垃圾程序员写的程序程序员任何人都看不懂,用什么的都有~ C++的太复杂了,就是语法都很复杂,特别是模块与模板元方面的编程,一个搞了三五年(至少两个以上项目)的程序员顶多可以说是入了点门道。C#在语法与语意上相对来说要简单得多,而且有微软支撑。就开发的程序来说,C#除了驱动不能开发(有点像当年的delphi),都可以开发,如果是开发商业的业务流与不考虑效率的windows软件,C#应该是上选,但是C++更有挑战性,他是什么都可以做,如果你时间足够多、技术足够强,连C#专长的WEB程序也可做得到,所以,选什么语言是根据做什么样的项目而言,如果你是要搞效率高,资料占用少的东西,还是要C++或是C之类的东西。最重要的是C#的工资普遍很底哦,大家要想清楚。 不过,C++可以很清楚的很出高手与正常水平的人。C#较难,都是高手。呵呵。 不用管内存,就算偶尔用个API的都少,只要拖过来拖过去就行了。 没有理由不从C++转到C#就是说 "我才不从C++转到C#,不需要理由" ^_^ 1 语法对比托管扩展语法public __gc __sealed class Student{private:double m_grade;String* m_name;public:__property double get_Grade() { return m_grade; }__property void set_Grade(double newGrade) { m_grade = newGrade; }__property String* get_Name() { return m_name; }__property void set_Name(String* newName) { m_name = newName; } }C++/CLI 语法public ref class Student sealed{private:double m_grade;public:// standard property syntaxproperty double Grade{double get() { return m_grade; }void set(double newGrade) { m_grade = newGrade; }}// trivial property // compiler can generate accessors and backing storeproperty String^ Name;}在新的语法中,类型以“形容词类”的形式声明,其中,形容词描述您正在创建的类是什么类型,如下所示:class N { /*…*/ }; // native typeref class R { /*…*/ }; // CLR reference typevalue class V { /*…*/ }; // CLR value typeinterface class I { /*…*/ }; // CLR interface typeenum class E { /*…*/ }; // CLR enumeration type3 确定性清理实现 代码没有确定性清理的 C# string ReadFirstLineFromFile(string path){StreamReader reader = new StreamReader(path);return reader.ReadLine();})具有确定性清理的 C# string ReadFirstLineFromFile(string path){using (StreamReader reader = new StreamReader(path)){return reader.ReadLine();}}具有确定性清理的 Visual Basic .NET Function ReadFirstLineFromFile( _ByVal path As String) As String Dim reader As StreamReaderTryreader = New StreamReader(path)ReadFirstLineFromFile = reader.ReadLine()FinallyIf Not reader Is Nothing Then _CType(reader, IDisposable).Dispose()End TryEnd Function具有确定性清理的 C++ String^ ReadFirstLineFromFile(String^ path){StreamReader reader(path);return reader.ReadLine();}现在,Visual C++ 2005在任何类型上都提供了可以具有析构函数/finalizer的功能,无论这种类型是托管的还是本机的。在它为托管类型的情况下,编译器会将析构函数映射到IDisposable::Dispose方法。这意味着能够用C++语言编写同样的方法,如图3中的第四个代码片断所示,其中,阅读器的析构函数/Dispose方法将会自动被调用,就像在C#中使用“using”语句一样。当在堆栈上创建某一类型时,它的析构函数会在它超出其使用范围时被调用。 我也来说说 C# -> 进步的产物:C#是站在C++的肩膀上诞生,说C#就不得不说下他前面有个兄弟叫java,java是怎么出生的呢?据说他的发明者是个很懒的C++程序员,抱怨C++太难学了,于是他成天想怎么"投机取巧",慢慢的java的雏形就出来了。C#的出生按java的人说法应该是微软"强暴"出来的。深入分析因果来源:C++很牛比,确实很牛比,就如某某书法大师的那个草书书法啊,行云流水,一个字"强",不过很多人看不懂,为什么看不懂呢?人家就说了,因为你"俗",没文化啊,你看看人家大师都是几十年的功力,你算啥。大家听说过打字机是怎么发明的吗?有对老外夫妇,老婆当秘书,每天要写很多字,老公觉得老婆太累,于是动手发明了第一台打字机。同样的字,打字机的字有书法大师的笔墨好吗?回答:没有。日常生活需要的字,都要写得像书法大师一样好吗?回答:不需要。中国每年出产多少程序员?中国每年多少新生的小网站、小企业要做系统?这些小程序员都要吃饭,小网站、小公司也要开张。生产力和生产关系不相适应,当无法满足当前社会的需要时,心疼老婆的老公发明了打字机,很"懒"的C++程序员写出了java(C#)。再来说说进步的"痕迹":一代代的语言之间的痕迹,怎么说呢,昨天看了篇文章,其中有个例子可以借用下。“据悉,美国铁路两条铁轨之间的距离是4.85英尺。为什么是这个奇特的标准呢?原来最早美国的铁路是由英国人设计建造的,而英国的铁路是由建电车的人设计的,可最先造电车的人以前是造马车的,他们习惯性地把马车的轮宽搬到了电车上。然而,英国马车的轮宽之所以用这个标准,是因为其老路的辙迹是这么宽,如果马车用其他轮距的话,轮轴就很容易损坏。据资料显示,英国老路的辙迹宽度是罗马战车形成的,而罗马战车的轮度是依两匹拉战车的马屁股宽度设计制造的。就这样,两匹马屁股的宽度就构成了现在铁轨的宽度。” LZ可以出本书 名字就叫做<<没有理由不从C#转到C*>>呵呵 if else 问题 请问这个正则表达式怎么写 .NET中用TreeView绑定Datatable Word书签问题 dataset.table.add的问题 wf 自定义流程的疑问? 求:0-9999 的正则表达式 怎么写 在ASPX 文件中怎样为动态建立的控件添加事件 水晶报表的问题 关于自制控件的问题请教? 【散分讨论】No.02-反射的应用场合 线程传入参数
C的下一版本就是c++
惆怅个啥?
这个我到相信
如果说的是C++,那说这个话的人可以去XX了
桌面程序還是C#好些。
驅動和地層的開發還是C/C++的天下。
C#替代VC++的话我还能够理解,能够替代C++的话可能有点过分了。
是不是这个道理呢?!
到网上找找工就知道了
其实C#的工资,待遇,带来的激情远远不如C++
用C++写出来的,可以很自豪,用c#写出来的很难达到自豪
C++骂C#
大家一起骂出问题的人
----谁会从C转到C#??C写得好,起码是七八千的收入,我倒是从C#转到C了
如果我们需要研究到“足够”深入。那么就不是软件所能够描述的。而是数学物理方程所表达的晶体管物理特性了。但是,会有人用物理方法去编程么?没有。软件属于上层的系统。它的特性是独立于硬件系统的物理特性的。物理不能描述软件系统的特性。而没有物理,连硬件都不会有,更谈不上软件技术了。软件技术和物理方程都是有用的东西。但是他们工作在不同的层面上。谁也不能代替谁。而软件与物理的关系就类似于c++与c#的关系。
现在的C++程序员还是香饽饽啊!!!!!!!!
个人觉得C++很强大!!
高级程序员写的程序高级程序员都能看懂,一般用C++;
中级程序员写的程序程序员是个人就能看懂,一般用C#;
垃圾程序员写的程序程序员任何人都看不懂,用什么的都有~
C#较难,都是高手。呵呵。 不用管内存,就算偶尔用个API的都少,只要拖过来拖过去就行了。
public __gc __sealed class Student
{
private:
double m_grade;
String* m_name;
public:
__property double get_Grade() { return m_grade; }
__property void set_Grade(double newGrade) { m_grade = newGrade; }__property String* get_Name() { return m_name; }
__property void set_Name(String* newName) { m_name = newName; }
}
C++/CLI 语法
public ref class Student sealed
{
private:
double m_grade;
public:
// standard property syntax
property double Grade
{
double get() { return m_grade; }
void set(double newGrade) { m_grade = newGrade; }
}// trivial property
// compiler can generate accessors and backing store
property String^ Name;
}在新的语法中,类型以“形容词类”的形式声明,其中,形容词描述您正在创建的类是什么类型,如下所示:
class N { /*…*/ }; // native type
ref class R { /*…*/ }; // CLR reference type
value class V { /*…*/ }; // CLR value type
interface class I { /*…*/ }; // CLR interface type
enum class E { /*…*/ }; // CLR enumeration type3 确定性清理
实现 代码
没有确定性清理的 C# string ReadFirstLineFromFile(string path)
{
StreamReader reader = new StreamReader(path);
return reader.ReadLine();
})
具有确定性清理的 C# string ReadFirstLineFromFile(string path)
{
using (StreamReader reader = new StreamReader(path))
{
return reader.ReadLine();
}
}
具有确定性清理的 Visual Basic .NET Function ReadFirstLineFromFile( _
ByVal path As String) As String
Dim reader As StreamReader
Try
reader = New StreamReader(path)
ReadFirstLineFromFile = reader.ReadLine()
Finally
If Not reader Is Nothing Then _
CType(reader, IDisposable).Dispose()
End Try
End Function
具有确定性清理的 C++ String^ ReadFirstLineFromFile(String^ path)
{
StreamReader reader(path);
return reader.ReadLine();
}现在,Visual C++ 2005在任何类型上都提供了可以具有析构函数/finalizer的功能,无论这种类型是托管的还是本机的。在它为托管类型的情况下,编译器会将析构函数映射到IDisposable::Dispose方法。这意味着能够用C++语言编写同样的方法,如图3中的第四个代码片断所示,其中,阅读器的析构函数/Dispose方法将会自动被调用,就像在C#中使用“using”语句一样。当在堆栈上创建某一类型时,它的析构函数会在它超出其使用范围时被调用。
C#是站在C++的肩膀上诞生,说C#就不得不说下他前面有个兄弟叫java,java是怎么出生的呢?据说他的发明者是个很懒的C++程序员,抱怨C++太难学了,于是他成天想怎么"投机取巧",慢慢的java的雏形就出来了。C#的出生按java的人说法应该是微软"强暴"出来的。
深入分析因果来源:
C++很牛比,确实很牛比,就如某某书法大师的那个草书书法啊,行云流水,一个字"强",不过很多人看不懂,为什么看不懂呢?人家就说了,因为你"俗",没文化啊,你看看人家大师都是几十年的功力,你算啥。
大家听说过打字机是怎么发明的吗?有对老外夫妇,老婆当秘书,每天要写很多字,老公觉得老婆太累,于是动手发明了第一台打字机。
同样的字,打字机的字有书法大师的笔墨好吗?回答:没有。日常生活需要的字,都要写得像书法大师一样好吗?回答:不需要。中国每年出产多少程序员?中国每年多少新生的小网站、小企业要做系统?这些小程序员都要吃饭,小网站、小公司也要开张。生产力和生产关系不相适应,当无法满足当前社会的需要时,心疼老婆的老公发明了打字机,很"懒"的C++程序员写出了java(C#)。再来说说进步的"痕迹":
一代代的语言之间的痕迹,怎么说呢,昨天看了篇文章,其中有个例子可以借用下。
“据悉,美国铁路两条铁轨之间的距离是4.85英尺。为什么是这个奇特的标准呢?原来最早美国的铁路是由英国人设计建造的,而英国的铁路是由建电车的人设计的,可最先造电车的人以前是造马车的,他们习惯性地把马车的轮宽搬到了电车上。然而,英国马车的轮宽之所以用这个标准,是因为其老路的辙迹是这么宽,如果马车用其他轮距的话,轮轴就很容易损坏。据资料显示,英国老路的辙迹宽度是罗马战车形成的,而罗马战车的轮度是依两匹拉战车的马屁股宽度设计制造的。就这样,两匹马屁股的宽度就构成了现在铁轨的宽度。”