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";
}