Здравствуйте, Serginio1, Вы писали:
В доплонение Код двух Функций Для Delphi одинаков.
Function GetClassStaticName(v:Tobject):String;
begin
result:= TVclass(v.ClassType).StaticVirt
end;
Function GetClassStaticName(v:TVirtClass):String;
begin
result:= v.StaticVirt
end;
Правильно преобразует в одну
public static string GetClassStaticName(object v)
{ string text1;
text1 = (TObjectHelper.ClassType(v) as @MetaTVirtClass).StaticVirt();
return text1;
}
В нативном коде просто был бы вызов по VMT статического виртуального метода, т.к. тип соотвествует декларируемому. Но хотя приведение и существует но приведение вынужденное. Но если бы это был не отдельный класс то приведение и не нужно так как виртуальный тип уже известен на этапе компиляции.