using System; using System.Collections.Generic; using System.Linq; using System.Text; region / 試想一下,如果在一個類A繼承自介面B和C, 並且在B和C中包含具有相同簽名的成員, 那麼在類中實現該成員將導致 ...
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
#region
/*試想一下,如果在一個類A繼承自介面B和C,
並且在B和C中包含具有相同簽名的成員,
那麼在類中實現該成員將導致兩個介面都使用該成員作為他們的實現,
然而,如果兩個介面成員實現不同的功能,
那麼將會導致一個介面的成員實現不正確或兩個介面的成員實現都不正確,
這個時候我們應該如何處理呢?我們可以顯示的實現介面成員,
即創建一個僅通過介面調用並且特定於該介面的類成員。*/
#endregion
namespace 顯示實現介面成員
{
interface ImyInterface1
{
int Add();
}
interface ImyInterface2
{
int Add();
}
class myClass : ImyInterface1, ImyInterface2
{
int ImyInterface1.Add() //顯式介面成員實現
{
int x = 3;
int y = 5;
return x + y;
}
int ImyInterface2.Add() //顯式介面成員實現
{
int x = 3;
int y = 5;
int z = 7;
return x + y + z;
}
}
class Program
{
static void Main(string[] args)
{
ImyInterface1 i1 = new myClass();//使用介面繼承類的對象實例化介面
Console.WriteLine(i1.Add()); //使用介面對象調用介面中方法
ImyInterface2 i2 = new myClass();
Console.WriteLine(i2.Add());
Console.ReadKey();
}
}
}