Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu örnek, bir arabirim, IDimensions, ve Box sınıfını, arabirim üyelerini GetLength ve GetWidth açıkça uygulayarak bildirir. Üyelere arabirim örneği dimensionsüzerinden erişilir.
Örnek
interface IDimensions
{
float GetLength();
float GetWidth();
}
class Box : IDimensions
{
float _lengthInches;
float _widthInches;
Box(float length, float width)
{
_lengthInches = length;
_widthInches = width;
}
// Explicit interface member implementation:
float IDimensions.GetLength()
{
return _lengthInches;
}
// Explicit interface member implementation:
float IDimensions.GetWidth()
{
return _widthInches;
}
static void Main()
{
// Declare a class instance box1:
Box box1 = new(30.0f, 20.0f);
// Declare an interface instance dimensions:
IDimensions dimensions = box1;
// The following commented lines would produce compilation
// errors because they try to access an explicitly implemented
// interface member from a class instance:
//Console.WriteLine($"Length: {box1.GetLength()}");
//Console.WriteLine($"Width: {box1.GetWidth()}");
// Print out the dimensions of the box by calling the methods
// from an instance of the interface:
Console.WriteLine($"Length: {dimensions.GetLength()}");
Console.WriteLine($"Width: {dimensions.GetWidth()}");
}
}
/* Output:
Length: 30
Width: 20
*/
Sağlam Programlama
Mainyöntemindeki aşağıdaki satırların derleme hataları üreteceği için yorum satırı haline getirildiğine dikkat edin. Açıkça uygulanan arabirim üyesine sınıf örneğinden erişilemez://Console.WriteLine($"Length: {box1.GetLength()}"); //Console.WriteLine($"Width: {box1.GetWidth()}");Yöntemler arabiriminin bir örneğinden çağrıldığından, yöntemde
Mainaşağıdaki satırların kutunun boyutlarını başarıyla yazdırdığını da göz önünde bulundurun:Console.WriteLine($"Length: {dimensions.GetLength()}"); Console.WriteLine($"Width: {dimensions.GetWidth()}");