一般來說.NET提供了三種不同的介面實作方式,分別為隱式介面實作、明確介面實作、混合式介面實作。這三種方式各有各的特色。
首先來看隱式介面實現,這恐怕是我們使用最多的一種介面實現,因為隱匿介面實作是.NET的預設介面實現方式。下面讓我們來看看一個隱式介面實作的範例:
using System;
internal class MyClass
{
public void SomeMethod()
{
// 利用介面的方式宣告一個Myinplement物件
IMyInterface iObj = 利用介面的方式宣告一個Myinplement物件
IMyInterface iObple );
iObj.MethodA();
// 利用類別的方式宣告一個Myinplement物件
MyInplement obj = new MyInplement();
obj.MethodB();
}
}
public class Myplement region IMyInterface Members
///
/// 利用隱式介面實作方式實作介面中的方法
///
public void MethodA()
{
Console.WriteLine("a") ;
}
///
/// 利用隱式介面實作方式實作介面中的方法
///
public void MethodB()
{
Console.WriteLine("B") ;
}
#endregion
}
public interface IMyInterface
{
void MethodA();
void MethodB();
}
internal class MyClass
{
public void SomeMethod()
{
// 利用介面的方式宣告一個Myinplement物件
IMyInter iOplejin = new MyOple
iObj.MethodA();
// 利用類別的方式宣告一個Myinplement對象,會報錯,因為MyImplement的MethodA方法是private的
MyInplement obj = new MyInplement();
}obj.MethodB();
public class MyInplement : IMyInterface
{
#region IMyInterface Members
///
/// 利用明確介面實作方式實作介面中的方法
///
face.
{
Console.WriteLine("a");
}
///
/// 利用明確介面實作方式實作介面中的方法
/// 會報錯,因為在明確介面實作時不允許帶有修飾符
///
public void IMyInterface.MethodB()
{
Console.WriteLine("B");
}
#endregion
}
publicface interface ();
void MethodB();
}
上面的程式碼中有兩個地方會報錯,這是因為我們在報錯的地方違反了明確介面實現的限制。
最後讓我們來看混合式介面實現,混合式介面實作就是將隱式介面實作和顯式介面實作搭在一起使用,下面讓我們來看一個例子:
internal class MyClass
{public void SomeMethod()
{// 利用介面的方式宣告一個Myinplement物件
IMyInterface iObj = new MyInplement();
iObj.MethodA();
// 利用類別的方式宣告一個物件,不會用物件報錯,因為MyImplement的MethodA方法是public的
MyInplement obj = new MyInplement();
obj.MethodB();
}
}
public class MyInplement : IMyInterface
{
}
public class MyInplement : IMyInterface
{face]
/// 利用明確介面實作方式實作介面中的方法
///
void IMyInterface.MethodA()
{
Console.WriteLine("a");
}
///
/// 利用隱式介面實作方式實作介面中的方法
///
public void MethodB()
{
Console.WriteLine("B");
}
#endregion
}
public interface IMyInterface
{
void MethodA();
void MethodB();
}
上面的程式碼 中我們將MehtodB的實作改為隱式介面實作,這樣MyImplement.Method的修飾符就是public的了,程式碼中就沒有錯了。