Информация об изменениях

Сообщение Re[20]: Мнение: объектно-ориентированное программирование — от 23.09.2019 12:25

Изменено 23.09.2019 12:44 AlexRK

Re[20]: Мнение: объектно-ориентированное программирование —
Здравствуйте, varenikAA, Вы писали:

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>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>Попробуй тоже самое с АТД и скажи что это одно и тоже.


Это не одно и то же. Это сходные концепции. Только вот наследование к ним не имеет никакого отношения.