Не могу пользоваться полями объекта интерфейса 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 шт):
class Car : ICar {
...
}
ICar car = new Car();
car.Name = "Tesla Car";
...
Хотя ответ уже есть, но всё же дополнительно поясню. Интерфейс - это, как сейчас модно говорить, контракт. Он просто описывает способы взаимодействия с объектом класса, который будет реализовывать этот интерфейс. Нельзя создать объект типа интерфейс. Но можно унаследовать от интерфейса класс, создать объект этого класса, и вот этим объектом уже можно пользоваться как интерфейсом, которому этот класс наследует.
