-5
class Test {
    public Test(string name, string age) {
    }
}

interface ITest
        ????????

class Example: ITest {
    public Example(/* ... */) {
    }
}

那么我应该在我的界面中使用什么来在我的示例中使用与测试中相同的参数?

我想做的事:

  • 我有 3 个课程abc

  • 我希望我c的继承自ab

但是 C# 不允许你这样做......所以我想使用一个接口。

编辑 我的课程是:

  • 学生(姓名、年龄、学业)
  • 教师(姓名、年龄、班级)
  • 在职学生/教师(姓名、年龄、学习/课程、付款)

所以我想在我的工作班中使用其他班级的方法。

4

4 回答 4

1

接口用作继承它的类的契约。这意味着您希望接口公开的任何公共方法/属性也必须在继承的类中公开。

在上述情况下,您没有在接口中公开任何公共方法/属性。让我给你看一个例子。

Interface ITest
{
   void AddPerson(string name, string age);
}

Interface IPerson
{
    string ReturnPersonsAge(string name);
}

/// This must expose the AddPerson method
/// This must also expose the ReturnPersonByAge method
class Example : ITest, IPerson
{
   Dictionary<string, string> people = new Dictionary<string, string>();

   void AddPerson(string name, string age)
   {
      people.Add(name, age);
   }

   string ReturnPersonsAge(string name)
   {
      return people[name];
   }
}

我希望这会有所帮助,但请随时提出更多问题,以便我帮助缩小您的问题范围。

于 2013-04-18T16:03:37.643 回答
0
Interface IAClass
{
  void Add(string s);
}
Interface IBClass
{
  void Delete(string m);
}


Class A: IAClass
{
  void Add(string name)
{
  // Your Logic
}
}

Class B: IBClass
{
  void Delete(string name)
{
  // Your Logic
}
}

Class C:IAClass,IBClass
{
     void Add(string name)
{
  // Your Logic
}

 void Delete(string name)
{
  // Your Logic
}
}
于 2013-04-18T16:14:38.480 回答
0

接口不能定义构造函数。当然还有其他方法可以做到这一点,这取决于您想要实现的目标。

于 2013-04-18T16:02:50.343 回答
-1

您可以将它们公开为界面中的属性

Interface ITest
{
string Name{get;set;}
string Age{get;set;}
}
于 2013-04-18T16:00:37.927 回答