为什么界面显示“接口不能包含字段”?

时间:2019-01-17 18:49:53

标签: c#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{

    interface IInterface
    {

    }

    public interface Icar
    {
        int doors;
        string name;
        bool suv
    }

    class Car : Icar
    {
        public int doors;
        public string name;
        public bool suv;
    }

    class Program
    {
        static void Main(string[] args)
        {

            Car s = new Car { doors = 5, name = "my name", suv = true };
            Car t = new Car { doors = 2, name = "my name again", suv = false };

            Console.WriteLine("test");
            Console.ReadLine();
        }
    }
}

2 个答案:

答案 0 :(得分:1)

因为不允许这样做。按照C# reference for interfaces

  

接口可以是名称空间或类的成员,并且可以包含以下成员的签名:

     
      
  • 方法
  •   
  • 属性
  •   
  • 索引器
  •   
  • 事件
  •   

C# Programming guide进行了更详细的介绍,指出了界面中无法包含的内容:

  

接口不能包含常量,字段,运算符,实例构造函数,终结器或类型。接口成员是自动公开的,并且不能包含任何访问修饰符。成员也不能是静态的。

答案 1 :(得分:0)

因为您尚未将字段设置为实际属性。接口不支持字段。错误消息指出。

只需更改

  public int doors;
  public string name;
  public bool suv;

收件人

  int doors {get; set;}
  string name {get; set;}
  bool suv {get; set;}