Сообщение Re[20]: Мнение: объектно-ориентированное программирование — от 23.09.2019 12:25
Изменено 23.09.2019 12:44 AlexRK
Re[20]: Мнение: объектно-ориентированное программирование —
Здравствуйте, varenikAA, Вы писали:
ARK>>Идеологически алгебраический тип данных — это один тип, никаких подтипов в нем нет (хотя внутри можно реализовывать и классами, разумеется). Это "расширенный енум". И его конструкторы — это аналог членов енума, а не типов.
AA>
AA>Спокойно скомпилится.
Правда?
https://ideone.com/pQlsqB
Вот это поворот.
AA>Попробуй тоже самое с АТД и скажи что это одно и тоже.
Это не одно и то же. Это сходные концепции. Только вот наследование к ним не имеет никакого отношения.
ARK>>Идеологически алгебраический тип данных — это один тип, никаких подтипов в нем нет (хотя внутри можно реализовывать и классами, разумеется). Это "расширенный енум". И его конструкторы — это аналог членов енума, а не типов.
AA>
AA>enum X {
AA> A
AA>}
AA>void Method(X x)
AA>{
AA>}
AA>Method((X)10);
AA>AA>Спокойно скомпилится.
Правда?
https://ideone.com/pQlsqB
using System;
enum X { A }
public class Test
{
static void Method(X x)
{
}
public static void Main()
{
Method(10);
}
}prog.cs(13,10): error CS1503: Argument `#1' cannot convert `int' expression to type `X'
Вот это поворот.
AA>Попробуй тоже самое с АТД и скажи что это одно и тоже.
Это не одно и то же. Это сходные концепции. Только вот наследование к ним не имеет никакого отношения.
Re[20]: Мнение: объектно-ориентированное программирование —
Здравствуйте, varenikAA, Вы писали:
ARK>>Идеологически алгебраический тип данных — это один тип, никаких подтипов в нем нет (хотя внутри можно реализовывать и классами, разумеется). Это "расширенный енум". И его конструкторы — это аналог членов енума, а не типов.
AA>
AA>Спокойно скомпилится.
Правда?
https://ideone.com/pQlsqB
Вот это поворот.
UPD. А, вижу, ты подредактировал уже с приведением типов. Так скомпилится, да. Но что это доказывает или опровергает?
AA>Попробуй тоже самое с АТД и скажи что это одно и тоже.
Это не одно и то же. Это сходные концепции. Только вот наследование к ним не имеет никакого отношения.
ARK>>Идеологически алгебраический тип данных — это один тип, никаких подтипов в нем нет (хотя внутри можно реализовывать и классами, разумеется). Это "расширенный енум". И его конструкторы — это аналог членов енума, а не типов.
AA>
AA>enum X {
AA> A
AA>}
AA>void Method(X x)
AA>{
AA>}
AA>Method(10);
AA>AA>Спокойно скомпилится.
Правда?
https://ideone.com/pQlsqB
using System;
enum X { A }
public class Test
{
static void Method(X x)
{
}
public static void Main()
{
Method(10);
}
}prog.cs(13,10): error CS1503: Argument `#1' cannot convert `int' expression to type `X'
Вот это поворот.
UPD. А, вижу, ты подредактировал уже с приведением типов. Так скомпилится, да. Но что это доказывает или опровергает?
AA>Попробуй тоже самое с АТД и скажи что это одно и тоже.
Это не одно и то же. Это сходные концепции. Только вот наследование к ним не имеет никакого отношения.