2013-03-11 52 views
0

在C#什麼是下面的C#代碼等同放着清單C++ CLI

public class cls { 
    public static void met() { 
    } 
} 

我想在C++ CLI。 方法met對減速爲cls的變量不應可見。

我應該能夠:

cls::met(); 

我不應該能夠:

cls z; 
z.met(); 
+0

您正在尋找的關鍵詞是'static'。和在C#中一樣。發佈您的最佳嘗試和任何出現的錯誤。 – nvoigt 2013-03-11 09:01:55

+0

@nvoigt我已經使用了static,但'met'對'cls' varialbes是可見的 – 2013-03-11 09:02:48

+0

C++中static的問題是您可以調用對象上的靜態方法,儘管您會收到警告。所以'z.met()'應該編譯。 – 2013-03-11 09:03:24

回答

1
namespace cls { 
    void met() { 
    } 
} 

歡迎C++,享受您的逗留。

+0

真棒,但是現在我不能將變量作爲具有名稱空間的相同名稱...'class cls z;'拋出一個錯誤 – 2013-03-11 09:14:37

+0

你的代碼也不允許我在命名空間範圍內定義屬性 – 2013-03-11 09:39:43

+1

爲命名空間提供另一個名稱,並將它保留爲cls作爲類名 - 你必須使用命名空間的名稱來限定函數:'cls z; cls_namespace :: met();'這與C#中的不一樣。但它*不是C#,畢竟它是C++/CLI。所以你不能在兩種語言中都擁有相同的內容 - 那麼其中一個就是多餘的。 – 2013-03-11 10:36:04

相關問題