Мой общий класс, похоже, не является *таким* универсальнымC#

Место общения программистов C#
Ответить
Anonymous
 Мой общий класс, похоже, не является *таким* универсальным

Сообщение Anonymous »

В настоящее время я создаю небольшую игру по уходу за растениями (Unity Engine 2022.3.40f1). Его свойства (гены) передаются его частям в виде генома. Этими свойствами могут быть числа с плавающей запятой, целые числа или цвета.
Для этой цели я создал абстрактный класс Gene (см. ниже), из которого GeneFloat : Gene , GeneInt : Gene создаются...
И я столкнулся с проблемой: этот класс Gene не кажется универсальным так, как мне хотелось бы.
Класс Gene

Код: Выделить всё

public abstract class Gene {
public abstract T value { get; set; }
public abstract T randomRange { get; set; }
}
Пример унаследованного гена (здесь GeneFloat):

Код: Выделить всё

public class GeneFloat : Gene {
public override float value { get; set; }
public override float randomRange { get; set; }
}
Однако я не могу использовать класс Gene в качестве универсального! Это моя проблема.
Следующий код заставляет Unity регистрировать сообщение об ошибке в консоли: "

Код: Выделить всё

the generic type 'Gene' requires 1 type arguments
"

Код: Выделить всё

public struct Genome {
public Gene[] genes; // 

Подробнее здесь: [url]https://stackoverflow.com/questions/78831316/my-generic-class-seems-to-not-be-that-generic[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»