Який синтаксис для конструктора за замовчуванням для загального класу?


87

Чи заборонено в C # реалізовувати конструктор за замовчуванням для загального класу?

Якщо ні, чому код нижче не компілюється? (Коли я видаляю <T>його компілюється)

Який тоді правильний спосіб визначення конструктора за замовчуванням для загального класу?

public class Cell<T> 
{
    public Cell<T>()
    {
    }
}

Помилка часу компіляції : Помилка 1 Недійсний маркер '(' у оголошенні класу, структури або члена інтерфейсу

Відповіді:


145

Ви не вказуєте параметр типу в конструкторі. Ось як ви повинні це робити.

public class Cell<T> 
{
    public Cell()
    {
    }
}

11

І якщо вам потрібен Type як властивість:

public class Cell<T>
{
    public Cell()
    {
        TheType = typeof(T);
    }

    public Type TheType { get;}
}

6

І якщо вам потрібно ввести екземпляр типу:

public class Cell<T>
{
    public T Thing { get; }

    public Cell(T thing)
    {
        Thing = thing;
    }
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.