多个接口出现同名函数的处理,C#,Delphi

如果一个类调用多个接口,且多个接口中有同名的函数,我们知道,如果类要继承一个接口,就必须要实现接口中的所有函数,怎么办?

C#的处理原则是:

在类中要分别实现每个接口及其函数,函数名前要加上接口的名称(前面的访问修饰符不用加,因为都是public).在调用此类中函数时,要把类别成对应的接口再调用接口对应的函数。

如下代码图:

  1.两个接口

如下代码图:

public interface inter1
{
void setname(string sname);
string getname();
}
public interface inter2
{
void setname(string sname);
string getname();
}

   2.创建类并实现以上两个接口

 

复制代码
 public class Myclass : Object, inter1, inter2
    {
        private string name="";

          void inter1.setname(string sname)
        {
            MessageBox.Show("Set inter1 name");
            name = sname;
        }

          void inter2.setname(string sname)
          {
              MessageBox.Show("Set inter2 name");
              name = sname;
          }

         string inter1.getname()
        {
            MessageBox.Show("Get inter1 name");
            return name;
        }

         string inter2.getname()
        {
            MessageBox.Show("Get inter2 name");
            return name;
        }
        
    }
复制代码
3.调用以上类的相关函数
 

复制代码
 private void button1_Click(object sender, EventArgs e)
        {
            Myclass myclass=new Myclass();
            inter1 i1 = (inter1)myclass;//强制类型转换
            i1.setname("vvv");

            inter2 i2 = (inter2)myclass;//强制类型转换
            i2.getname();
            
        }
复制代码