LINUX.ORG.RU

История изменений

Исправление 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 ?