Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 我们如何实现具有相同方法名的两个接口?_C# 4.0 - Fatal编程技术网

C# 4.0 我们如何实现具有相同方法名的两个接口?

C# 4.0 我们如何实现具有相同方法名的两个接口?,c#-4.0,C# 4.0,我有一个问题,我们如何实现具有相同方法名的接口 interface ISample2 { string CurrentTime(); string CurrentTime(string name); } interface ISample1 { string CurrentTime(); } 我喜欢这个,对吗 class TwoInterfacesHavingSameMethodName:ISample1,ISample2 { static void Mai

我有一个问题,我们如何实现具有相同方法名的接口

 interface ISample2
{
  string CurrentTime();
     string CurrentTime(string name);
}
 interface ISample1
{
     string CurrentTime();
}
我喜欢这个,对吗

class TwoInterfacesHavingSameMethodName:ISample1,ISample2
{
    static void Main(string[] sai)
    {
        ISample1 obj1 = new TwoInterfacesHavingSameMethodName();
        Console.Write(obj1.CurrentTime());
        ISample2 obj2 = new TwoInterfacesHavingSameMethodName();
        Console.Write(obj2.CurrentTime("SAI"));
        Console.ReadKey();
    }

    #region ISample1 Members

    string ISample1.CurrentTime()
    {
        return "Interface1:" + DateTime.Now.ToString();
    }

    #endregion

    #region ISample2 Members

    string ISample2.CurrentTime()
    {
        return "Interface2:FirstMethod" + DateTime.Now.ToString();
    }

    string ISample2.CurrentTime(string name)
    {
        return "Interface2:SecondMethod" + DateTime.Now.ToString() + "" + name;
    }

    #endregion
}
这句话的意思是什么:

ISample1 obj1 = new TwoInterfacesHavingSameMethodName();

我们正在为类或接口创建对象。在接口中编写方法的基本用途是什么。

当显式实现接口时,仅当从该接口的引用调用显式实现时,才会调用该显式实现

因此,如果你要写:

  TwoInterfacesHavingSameMethodName obj1 = new TwoInterfacesHavingSameMethodName();
  obj1.CurrentTime();
你会得到一个错误

但是

会有用的

如果您还想在
TwoInterfacesHavingSameMethodName
上调用此函数,则还必须隐式实现该接口。例如:

public string CurrentTime()
{
   return "Implicit";
}

是的,你所做的是正确的。 要回答第二个问题,请始终创建类和接口类型的对象。 在接口中编写方法的用途是强制所有类实现该方法

public string CurrentTime()
{
   return "Implicit";
}