C++/CLI創建的函數:點在C#項目不同於一般類型名在C++/CLI
public interface class ITest{
public:
virtual void doSomething(){
}
}
public ref Base {
...........
...........
}
generic <typename T> where T : ITest
public ref Derived : Base{
public:
virtual void doNothing(){
}
}
public ref AnotherClass {
public:
generic<class T> where T : Base
static int justDoThis(){
//Problem!!
}
}
C#:
在C#中有兩班A
和B
。 A
繼承自ITest
和B
繼承自Derived
,其中A
用作類型名稱。另外,B
有一個類型爲A
的私有變量。因此,從主函數AnotherClass.justDoThis<B>()
被調用,其中B
作爲泛型傳遞。
「//問題!!」部分:
現在我必須在本節中創建一個B
的新實例,並訪問A
這是B
中的私有變量。
你好,我是C++/CLI的新手。感謝您的回覆,但問題1是不可能的。正如構建錯誤時顯示的那樣:不能使用gcnew來分配泛型類型。我正在使用safe_cast(System :: Activator :: CreateInstance(TService :: typeid))。我現在想做2件事。首先將此遺傳傳遞給另一個沒有where子句的泛型函數。其次,在另一個函數中,我想使用覆蓋功能,這是從ITest –
user6924365
中寫入的A什麼是「TService」?你的問題中沒有「TService」。另外,請每個帖子提問一次,不要在同一帖子中添加更多問題。 –
這是T.對不起。我給出了泛型類型的錯誤名稱。你能回答這個問題嗎?我需要答案。 :-) – user6924365