如何使用c sharp界面

时间:2014-07-06 01:46:45

标签: c#

我有以下界面..它有一个错误,我不知道它为什么会发生。基本上,界面部分string DoorDescription { get; private set; }必须删除private set才能使其正常工作

namespace test6
    {
        interface IHasExteriorDoor
        {
            string DoorDescription { get; private set; }
            string DoorLocation { get; set; }
        }
        class Room : IHasExteriorDoor
        {
            public Room(string disc, string loc)
            {
                DoorDescription = disc;
                DoorLocation = loc;
            }
            public string DoorDescription { get; private set; }
            public string DoorLocation { get; set; }
        }
        class Program
        {
            static void Main(string[] args)
            {
                Room a = new Room("A","B");
                a.DoorLocation = "alien";
                //a.DoorDescription = "mars";
            }
        }
    }

2 个答案:

答案 0 :(得分:3)

请参阅here

  

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

基本上,界面是public contract

您可以将您的媒体资源设置为只读,然后拥有a private set in the class which implements it

答案 1 :(得分:2)

界面不能有任何私有方法。

只需从界面中删除setter:

    interface IHasExteriorDoor
    {
        string DoorDescription { get; }
        string DoorLocation { get; set; }
    }

实现它的类仍然可以拥有该属性的setter,并且由于setter未在接口中定义,因此它可以是私有的。