2011-03-25 69 views
1

我有一些非常生疏的C++和大量的C經驗,但已經做了很少的OO設計或編碼。我開始學習C++ .NET,因爲這似乎是最好的起點。在.NET世界中開始學習C#或C++會更好嗎?

我已經在微軟提供了多重繼承和擴展的條款限制,既不在C++中工作。

用C#重新開始,還是用混合語言方法更好?例如。 C#中的擴展,在C++中休息?

我仍然在使用this->方法或that.property和other :: staticthingy或其他方法,而這可能不是C#中的問題。你會明白我的意思,因爲這可能不是描述' - >''之間區別的正確方法。「和'::'

我正在實現我想要的,但它比我想象的要長10倍。

是否C#更快?

+2

託管C++有點奇怪,與C#相比並沒有被廣泛使用。你可能會發現使用C#會更容易。 – 2011-03-25 19:35:30

+0

當然有很多例子。 – NotMe 2011-03-25 19:36:34

+0

您能否爲您的問題添加更多信息? Microsoft編譯器支持多繼承。你使用託管C++還是直接C++? 「擴展名」是什麼意思?你想達到什麼目的?這是理解c#是否比C++更好的重要一點。 – register 2011-03-25 19:38:47

回答

6

MS希望你使用C#,所以使用C#。如果你的C++很生疏,你最終會浪費時間學習一門困難的語言,這實際上是.NET世界中的二等公民。

但是,.NET世界中的C++(稱爲C++/CLI)是一種很好的工具,可以將非.NET代碼包裝到.NET類中。對於多重繼承來說,C#支持繼承多個接口(Java),這是迄今爲止最有用的多重繼承用例。

+0

開幕式是荒謬的,MSFT是一種將資源投入大多數客戶找到利益的企業。像任何企業一樣。客戶選擇了C#而非託管C++。十年前這種情況並不明顯。 – 2011-03-25 20:29:32

+0

@Hans:沒錯。這句話暗示的是,大多數資源都被放入C#中。這意味着使用C#時,您將從這些資源中受益。與C++/CLI相比,它幾乎沒有MS的勢頭。 – 2011-03-25 20:36:46

0

我認爲C#更理智C++。但是,你仍然不會獲得多重繼承。

這就是說,一定要爲工作選擇合適的工具。如果你絕對需要C++(而且這種情況每天都變得更加罕見),那就堅持下去。

否則,請保存您的理智並轉移到C#。

0

如果你在C語言方面有豐富的知識,那麼C#應該更加有趣和簡單。

1

如果你打算去.NET路線,我個人建議去C#路線。我發現對C#相關問題的更多支持以及更多面向.NET的代碼示例。這只是從個人經驗。 C#是堆棧溢出時的最高流量標記。

+0

這是你在這裏提出的一個重要觀點。 – 2011-03-25 19:55:16

0

雖然我相信這是更多的programmers.SE問題,這裏是我的$ .02。

我會從C++開始。建立對內存管理,結構,清理等的理解和認識,然後轉向.NET。垃圾收集者(GC)非常好,但接觸到一種結構和開始「鬆散」的語言(恕我直言)爲一個可憐的基金會帶來了前進。

如果你瞭解後臺發生了什麼事情,在開發時就會有更好的思維定位(保持良好的記憶和資源思維)。

只是我的信仰,無論如何。

+1

我不能同意。如果你想了解背後的原因,學習C,而不是C++。如果你長期不打算使用它,學習C++是一個完全浪費時間的過程,因爲它是一門非常困難的語言,需要**年**(而不是幾個月!)來學習。我不談論*掌握* C++。 – 2011-03-25 19:54:50

0

如果你想進入AAA遊戲(或需要C++的工作)開始學習C++。

否則,C#是非常新而精緻,使它更容易/更快地學習(IMO)

0

C#是一個非常容易掌握的語言。我很久以前就第一次學會了非託管C++,老實說C++的語法已經發生了很大的變化,因爲我不再認識它了。在我開始定期使用C#編程之前,我以前的C語言是Java,如果您瞭解Java,則可以輕鬆學習C#。另外,從商業角度來看,C#是迄今爲止最受歡迎的.NET語言,就有多少人希望C#程序員而言,與VB,C++。NET或F#程序員相反。在C#中,例如,由指針引用的類的成員和本地實例化的類的成員之間沒有語法上的區別,因爲在C#中,儘管指針存在,但隱藏在很多抽象。一切都是一個「參考」(如果它不是一個簡單的「值類型」),並且被傳遞,所以引用一個對象的子對象總是用點符號來完成的。