Это потому, что Dirt_Block
это BlockType
, а не Block
. На самом деле, я не ожидал бы, что этот код скомпилируется, поскольку нет способа конвертировать Block
в BlockType
.
Я не совсем уверен, что вы ищете, но, похоже, у вас есть набор типов блоков, которые подходят для перечисления:
public enum BlockType
{
Dirt,
Wood,
Metal
}
и у вас есть коллекция блоков, каждый из которых имеет тип блока:
public class Block
{
public BlockType Type { get; set; }
}
Здесь мы используем общедоступное свойство auto. Вам следует избегать использования открытых полей (без методов получения или установки).
Теперь, чтобы создать новый Block
, вы можете использовать инициализацию объекта:
var block = new Block { Type = BlockType.Metal };
Кроме того, вы можете создать конструктор Block
, который принимает параметр BlockType
.