Я читал, что C++/CLI ref class
был эквивалентен классу C#. Тем не менее, я вижу разницу между this
в каждом классе.Разница между классом ссылок C++/CLI и классом C#
EDIT: Я получил this
от местных жителей Visual Studio 2010. (Кроме того, я заметил разницу во время компиляции при выполнении одного и того же метода - класс C++/CLI дал ошибку, указав, что он не может преобразовать Object^в MyClass ^, тогда как литье с классом C# не создает ошибок во время компиляции).
C# класс:
namespace MyNamespace
{
public class MyClass
{
public MyClass()
{
//Do something
}
}
}
this
= MyNamespace.MyClass (То, что я ожидал и хочу!)
C++/CLI ref class
:
namespace MyNamespace
{
public ref class MyClass
{
public:
MyClass::MyClass()
{
//Do something
}
}
}
this
= System :: Object^ (Не то, что я ожидал, или хотите !!)
Я ожидал бы this
быть похожим на C# пример, в котором говорится, что this
имеет тип MyClass
, Тем не менее, класс C++/CLI ref указывает, что он имеет тип Object
.. Это определенно НЕ то, что я хочу. (Это затрудняет выполнение различных ситуаций, таких как кастинг в функции C++).
Так что мой вопрос (две части):
а) почему эти классы ведут себя по-разному с this
?
b) Как получить класс C++/CLI ref для правильного типа в this
??
Спасибо за ваше время заранее!
Как вы можете проверить тип 'this'? – svick
Вы не указали какой-либо соответствующий код, который показывает нам, как вы использовали 'this' –
@svick: из местных жителей Visual Studio 2010 – developer