История изменений
Исправление sanyo1234, (текущая версия) :
в вашей конструкции где был тип или интерфейс?
Справа после оператора new
очевидно.
Т.е. тип переменной был автоматически назначен из типа присваемого выражения. Но можно было и явно указать:
dim VarName1 as TypeName1 = new TypeName1(Arg1, Arg2)
В обоих случаях переменная VarName1 автоматически получает возможность работы с неявным интерфейсом по умолчанию для этого типа и всех его потомков, т.е. как раз полиморфизм, который вы хотели.
Пример из 2010 года: https://www.c-sharpcorner.com/blogs/polymorphism-in-vb-net1
А вот про полиморфизм в VB.NET из 2002 года: https://www.informit.com/articles/article.aspx?p=25857&seqNum=4
Там же даже есть про полиморфизм VB4+ из середины 90-х годов!
Если бы вместо TypeName1
был указан InterfaceName1
, то переменная была бы совместима с любым типом, который его имплементирует.
вы спросили чем она плоха, я ответил что там нет типа, а только инишалайзер. А если вам нравится наворачивать еще рядом тайпкаст то в принципе я не удивлен вашим пристрастием к говну.
Причём тут typecast ?
Исправление sanyo1234, :
в вашей конструкции где был тип или интерфейс?
Справа после оператора new
очевидно.
Т.е. тип переменной был автоматически назначен из типа присваемого выражения. Но можно было и явно указать:
dim VarName1 as TypeName1 = new TypeName1(Arg1, Arg2)
В обоих случаях переменная VarName1 автоматически получает возможность работы с неявным интерфейсом по умолчанию для этого типа и всех его потомков, т.е. как раз полиморфизм, который вы хотели.
Если бы вместо TypeName1
был указан InterfaceName1
, то переменная была бы совместима с любым типом, который его имплементирует.
вы спросили чем она плоха, я ответил что там нет типа, а только инишалайзер. А если вам нравится наворачивать еще рядом тайпкаст то в принципе я не удивлен вашим пристрастием к говну.
Причём тут typecast ?
Исправление sanyo1234, :
в вашей конструкции где был тип или интерфейс?
Справа после оператора new
очевидно.
Т.е. тип переменной был автоматически назначен из типа присваемого выражения. Но можно было и явно указать:
dim VarName1 as TypeName1 = new TypeName1(Arg1, Arg2)
В обоих случаях переменная VarName1 автоматически получает возможность работы с неявным интерфейсом по умолчанию для этого типа и всех его потомков, т.е. как раз полиморфизм, который вы хотели.
вы спросили чем она плоха, я ответил что там нет типа, а только инишалайзер. А если вам нравится наворачивать еще рядом тайпкаст то в принципе я не удивлен вашим пристрастием к говну.
Причём тут typecast ?
Исходная версия sanyo1234, :
в вашей конструкции где был тип или интерфейс?
Справа после оператора new
очевидно.
Т.е. тип переменной был автоматически назначен из типа присваемого выражения. Но можно было и явно указать:
dim VarName1 TypeName1 as TypeName1 = new TypeName1(Arg1, Arg2)
В обоих случаях переменная VarName1 автоматически получает возможность работы с неявным интерфейсом по умолчанию для этого типа и всех его потомков, т.е. как раз полиморфизм, который вы хотели.
вы спросили чем она плоха, я ответил что там нет типа, а только инишалайзер. А если вам нравится наворачивать еще рядом тайпкаст то в принципе я не удивлен вашим пристрастием к говну.
Причём тут typecast ?