2008-11-17 53 views
5

我沒有看到任何真正的優勢,除了你有一個C++語法,以及它,像指針和析構函數的事實。通過標準C++或C#使用C++/CLI有什麼好處嗎?

+0

當你說「微軟的C++味道」時,你是在談論MSVC本地C++編譯器中的MS擴展,還是你在談論C++/CLI? – 2008-11-17 23:29:42

+0

我指的是編譯到.NET運行時的Visual C++。我認爲這是C++/CLI。 – 2008-11-18 00:54:39

回答

13

如果你在談論爲什麼要使用C++/CLI在C#中,我認爲主要的原因是:

  1. 它可能會爲C++開發人員更自然(雖然我認爲這可能不是真)
  2. C++/CLI有彌合本機和託管環境(使用「IJW」很不錯的功能 - 它只是工作 - 技術)

我認爲,香草薩特也許給出了最好的概述:

A Design Rationale for C++/CLI

如果你想知道爲什麼你可能想使用原生C++在C#/。NET,這歸結爲你爲什麼會想一個管理環境(安全,更輕鬆的開發)通過本機代碼(絕對的控制權,可能的速度優勢)。每個人都有自己的觀點,而且答案真的取決於你想要發展什麼以及你的市場可能是什麼。

0

我不認爲將不同風格的C++相互比較是與將C++與C#進行比較相同的問題。與不同風格的C++之間的差異相比,C#是一個非常不同的野獸。

6

我想你是指C++/CLI並將其與C#進行比較。 C++/CLI不是C++的「風味」。它是一種全新的語言,完全不同的標準庫和完全不同的約定。

在工作中,我們發現C++/CLI作爲C++和.NET之間的粘合劑語言是有價值的,但除了接口粘合劑之外,我們不使用它作爲任何東西--C#在所有其他應用程序中具有超越C++的巨大優勢。

如果你指的是像Adam所描述的MS C++擴展,如果他們讓你的工作更容易,沒有理由不使用它們。

1

使用C++ \ CLI的真正原因是將DotNet語言與Native C++進行通信,例如許多公司首先將它們的GUI遷移到.Net並讓C++中的某些邏輯進行遷移,而C++ \ CLI則是溝通的良好橋樑兩個技術之間,你也可以使用COM組件,但由於許多原因,這不是一個好的選擇。

相關問題