Не могу пользоваться полями объекта интерфейса C#

Изучаю интерфейсы, видел где-то в коде примерно такое

ISomething some;
// then
some.Something(); // могу ошибаться, но как-то так там работали с интерфейсом

Я сейчас пытаюсь сделать что-то похожее. Насколько помню в интерфейсе можно только описать поля и методы, а реализовывать их нужно уже в классе-наследнике. Может кто-то один, умный специалист и опытный в данной сфере, объяснить мне эти тонкости?

Вот код мой в вижле:

// ICar.cs
internal interface ICar
    {
        string Name { get; set; }
        string Description { get; }
        public string ReturnName()
        {
            return Name;
        }
    }
// Program.cs
namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            ICar car;
            car.Name = "Tesla Car";
            string x = car.ReturnName();
        }
    }
}

введите сюда описание изображения


Ответы (2 шт):

Автор решения: Igor

interface (C# Reference)

class Car : ICar {
  ...
}

ICar car = new Car();
car.Name = "Tesla Car";
...
→ Ссылка
Автор решения: CrazyElf

Хотя ответ уже есть, но всё же дополнительно поясню. Интерфейс - это, как сейчас модно говорить, контракт. Он просто описывает способы взаимодействия с объектом класса, который будет реализовывать этот интерфейс. Нельзя создать объект типа интерфейс. Но можно унаследовать от интерфейса класс, создать объект этого класса, и вот этим объектом уже можно пользоваться как интерфейсом, которому этот класс наследует.

→ Ссылка