– Nội dung của nội dung bài viết này bản thân đã trình diễn về interface vào C#. Đây là khái niệm khôn xiết cơ bản vào xây dựng phía đối tượng nói chung với xây dựng C# dành riêng.

Bạn đang xem: Interface trong c# là gì

– Nếu bạn nào đang tìm hiểu với thao tác cùng với ngôn ngữ lập trình Java thì tư tưởng interface trọn vẹn thân thuộc. Vậy interface là gì? Mục đích áp dụng của nó? Chúng ta đang thuộc tò mò vào bài viết này.


lấy ví dụ 1: Để dễ dàng tưởng tượng các chúng ta cũng có thể can dự mang đến nhỏ ếch, nó là loài lưỡng cư:

Vừa là động vật bên trên cạn.Vừa là động vật hoang dã hoàn toàn có thể sống bên dưới nước.

Nên nó có thể “kế thừa” 2 lớp động vật hoang dã này, tuy nhiên vào C# chỉ hỗ trợ 1-1 vượt kế, nhưng mà không hỗ trợ nhiều thừa kế.

lấy ví dụ như 2: Cách Đánh Giá kết quả của sinh viên trên những trường ĐH cùng những trung trung ương như trung vai trung phong giờ đồng hồ Anh, trung trọng điểm Tin học,… là khác biệt, ví dụ như đối với các loại Giỏi thì:

Đối cùng với ngôi trường ĐH thì tổng điểm >= 3.6Còn chính giữa giờ Anh thì tổng điểm >= 85%

Rõ ràng tại đây, bọn họ thấy và một phép tắc xếp loại Giỏi dẫu vậy phương pháp tính và kết quả chỉ dẫn là khác biệt.

Thông qua 2 ví dụ này thì:Làm nỗ lực nào để một tấm có thể thực hiện bình thường được các ở trong tính với cách làm của 2 giỏi các lớp khác?Làm cầm như thế nào để áp dụng các quy tắc không giống nhau, tùy vào thực trạng khác biệt của từng đối tượng?

=> Tất cả các điều đó sẽ tiến hành giải quyết bằng cách áp dụng interface.


2. Interface là gì? Và cú pháp khai báo
2. Interface là gì? Và cú pháp knhị báo
#1. Interface là gì?

Interface được hiểu là lớp nền (lớp base), Tức là chỉ gồm cơ sở thôi, tất cả rất nhiều sản phẩm sót lại là vì bọn họ (những xây dựng viên) trường đoản cú kiến tạo bên trên nền móng đó.

Interface nlỗi là một trong những lớp khía cạnh nạ, như là một phiên bản xây dựng cho các class thuộc cách thức chuyển động, tuy nhiên rất có thể cùng hoặc khác nhau về thực chất bên trong.

#2. Cú pháp knhị báo interface

interface // interface member
Trong đó:

: là public hoặc internal, còn nếu như không ghi rõ mặc định là internal.interface : từ khóa khai báo một interface. : hay bắt đầu bằng văn bản I, ví dụ: IShape, IAnimal, IStudent,… : trường đúng theo gồm implement từ bỏ interface khác thì vệt 2 chấm : biểu hiện sự implement, tiếp theo sau là tên base interface.

Xem thêm: Nghĩa Của Từ Come Out Nghĩa Là Gì ? Lgbt Nên Làm Gì Trước Khi Come Out?

■ Ví dụ:


// Knhị báo interface IPeopleinterface IPeople // interface member// Knhị báo interface IStudent, implement từ interface IPeoplepublic interface IStudent : IPeople // interface member
3. Các Đặc điểm của interface
3. Các điểm lưu ý của interface
Một interface trông có vẻ y hệt như một class, nhưng nó chỉ trình bày prototype của các yếu tắc methods, properties, indexers với events nhưng mà ko định nghĩa chúng. Các nhân tố ko được thực hiện trong interface là: constructor, destructor, field, hằng, nhân tố static.

Không thể knhì báo giỏi hướng đẫn phạm vi truy cập (access modifiers) cho các yếu tố bên phía trong interface. Các yếu tắc này đã mang định là public.

■ Knhì báo một interface IDung, bao gồm các yếu tố ĐÚNG:


interface IDung// methodvoid xyz();// propertystring name get; set; // indexerdouble this get; set; // eventsự kiện EventHandler OnChanged;

■ Knhị báo một interface ISai, bao hàm những yếu tắc SAI:


interface ISai// Không được thực hiện hàm // error CS0526: Interfaces cannot contain constructorsISai() // Không được thực hiện hàm // error CS0575: Only class types can contain destructors~ISai() // Không được chỉ định và hướng dẫn phạm vi truy vấn (access modifiers)// error CS0106: The modifier "public" is not valid for this itempublic void xyz();// error CS0106: The modifier "protected" is not valid for this itemprotected void abc();// Không được khai báo // error CS0525: Interfaces cannot contain fieldsint number;// Không được khai báo hằng // error CS0525: Interfaces cannot contain fieldspublic const double PI = 3.14;// Không được quan niệm hàm// error CS0531: "ISai.xyz()": interface members cannot have sầu a definitionvoid xyz()Console.WriteLine( "Print xyz" );// Không được áp dụng thành phần // error CS0106: The modifier "static" is not valid for this itemstatic void xyz();

Một interface sẽ được implement do những classes với structs, lúc ấy classes với structs bắt buộc phải khái niệm toàn bộ những thành phần được bộc lộ vào interface.

■ Giả sử họ bao gồm class Demo được implement từ bỏ interface IDung, thì phải class Demo phải quan niệm tất cả các thành phần được knhị báo trong interface IDung, hiệu quả nlỗi sau:


class Demo : IDung// implement methodpublic void xyz()throw new NotImplementedException();// implement propertypublic string namegetthrow new NotImplementedException();setthrow new NotImplementedException();// implement indexerpublic double thisgetthrow new NotImplementedException();setthrow new NotImplementedException();// implement eventpublic sự kiện EventHandler OnChanged;

Mỗi class hoặc struct rất có thể implement một hoặc nhiều interface, ngôi trường đúng theo những interface thì sẽ được phân cách nhau bởi vệt phẩy.


// Ví dụ: class implement các interfaceclass ConEch : IDongVatTrenCan, IDongVatDuoiNuoc// implement method interface IDongVatTrenCanpublic void Jump()throw new NotImplementedException();// implement method interface IDongVatDuoiNuocpublic void Swim()throw new NotImplementedException();interface IDongVatTrenCanvoid Jump();interface IDongVatDuoiNuocvoid Swim();

Mỗi interface ko được phép thừa kế xuất phát từ một class làm sao cả. Chỉ được phxay implement xuất phát điểm từ một hoặc nhiều interface, ngôi trường hợp những interface thì sẽ được phân làn nhau bởi dấu phẩy. Và khi implement trường đoản cú base interface thì không triển khai (ko định nghĩa) những nguyên tố của base interface.

Khác cùng với class. Không thể tạo nên một đối tượng người dùng từ interface.

Nếu một lớp implement từ khá nhiều interface có cùng tên member thì vào lớp nên chứng tỏ thành viên đó ở trong interface như thế nào (explicit interface). Xem thử nghiệm nghỉ ngơi lấy ví dụ 3 của mục 4.


4. Demo code minh họa giải pháp sử dụng
4. Demo code minch họa phương pháp sử dụng

lấy một ví dụ 1: Demo implement đơn interface. Chúng ta sẽ tạo nên ra một project MinhHoangBlog nhằm dụng cụ biện pháp xếp một số loại mang đến học viên tất cả những tệp tin sau:

File IRank.cs : interface IRank đặt ra khuôn mẫu về cách xếp loại cho học viên.File Apolo.cs : class implement interface IRank để tư tưởng luật lệ xếp nhiều loại cho trung trung tâm giờ đồng hồ Anh.File University.cs : class implement interface IRank nhằm quan niệm luật lệ xếp loại đến ngôi trường ĐH.File Program.cs : cất hàm main() thực hiện lịch trình.

■ Nội dung file IRank.cs


namespace MinhHoangBlog interface IRank // Knhị báo prototype hàm xếp loại string Ranking(float score);

■ Nội dung tệp tin Apolo.cs


namespace MinhHoangBlog// Implement interface IRank class Apolo : IRank // Định nghĩa hàm Ranking// theo luật lệ xếp một số loại của trung tâmpublic string Ranking(float score) if (score >= 85) return "Distinction"; if (score >= 65) return "Credit"; if (score >= 40) return "Pass"; return "Fail";

■ Nội dung file University.cs


namespace MinhHoangBlog// Implement interface IRankclass University : IRank // Định nghĩa hàm Ranking// theo quy tắc xếp nhiều loại của ngôi trường đại họcpublic string Ranking(float score) if (score >= 3.6) return "Xuat sac"; if (score >= 3.2) return "Gioi"; if (score >= 2.5) return "Kha"; if (score >= 2.0) return "Trung Binh"; return "Khong xep loai";

■ Nội dung file Program.cs


using System;namespace MinhHoangBlog class Program static void Main(string<> args) // Knhì báo đối tượng người sử dụng của class Apolo apolo = new Apolo(); University university = new University();// điện thoại tư vấn hàm xếp nhiều loại tương ứng cùng với từng đối tượng người tiêu dùng Console.WriteLine("Apolo: " + apolo.Ranking(40)); Console.WriteLine("University: " + university.Ranking(2.6f)); Console.ReadKey();

*
Lớp System.Array vào xây dựng C#
*

Lập trình C#

Generic collection LinkedList trong C#


*

Lập trình C#

Kiểu ẩn danh (Anonymous Type C#3.0)


*

Lập trình C#

Khởi tạo ra tập hòa hợp (Collection Initializer...

Xem thêm: Công Thức Tính Nửa Chu Vi Hình Chữ Nhật Là Gì, Hình Chữ Nhật Là Gì


Lập trình C#

Khởi tạo đối tượng (Object Initializer C#3...


Giới thiệu


Minch Hoàng
Xin kính chào, tôi là Hoàng Ngọc Minch, hiện nay đang làm BrSE, trên đơn vị Toyota, Nhật Bản. Những gì tôi viết trên blog này là gần như yên cầu thực tiễn tôi đang đúc rút ra được vào cuộc sống, quá trình học tập với thao tác làm việc. Các bài viết được biên tập một giải pháp chi tiết, linch hoạt sẽ giúp độc giả hoàn toàn có thể tiếp cận một biện pháp tiện lợi tuyệt nhất. Hi vọng nó đang hữu ích hoặc mang về một ánh mắt khác đến bạn<...>


Xem toàn bộ bài bác viết
Label
<+>
Name*
Email*
Label
<+>
Name*
Email*
5 Comments
Thích nhiều nhất
Mới độc nhất vô nhị Cũ tốt nhất
Inline Feedbacks
View all comments
Các phím tắt phổ cập trong Visual Studio - Minc Hoàng Blog | Cùng nhau share kỹ năng và kiến thức lập trình!
3 years ago

<…> Alt + Shift + F10 + Enter: Hiện thực những cách làm kế thừa từ Abstract class giỏi Interface. <…>


0
Reply
Tính kế thừa vào lập trình C# - Minch Hoàng Blog | Cùng nhau share kỹ năng lập trình!
3 years ago
<…> – Chỉ chất nhận được đối kháng thừa kế, Có nghĩa là một tấm chỉ được phxay kế thừa xuất phát từ một lớp không giống. (vậy làm chũm nào một lớp hoàn toàn có thể sử dụng được các ở trong tính và cách thức của tương đối nhiều lớp không giống nhau? Sẽ được trình bày trong bài Interface trong lập trình sẵn C#). <…>


0
Reply
So sánh abstract class cùng interface vào C# - Minch Hoàng Blog | Cùng nhau share kỹ năng và kiến thức thiết kế, trường đoản cú học giờ Nhật online cùng cuộc sống thường ngày Nhật Bản!
3 years ago
<…> sự như là và khác biệt thân hai quan niệm này cùng biết được bao giờ phải dùng interface, khi nào cần sử dụng abstract class <…>


0
Reply
Properties cùng Indexers trong C# - Minh Hoàng Blog | Cùng nhau share kiến thức xây dựng, từ học tiếng Nhật online và cuộc sống đời thường Nhật Bản!
2 years ago
<…> Thuộc tính – Property là 1 member (member) của một class, struct hay interface. Nó là không ngừng mở rộng của một ngôi trường (field). Property chất nhận được các bạn truy cập vào trong 1 <…>


0
Reply
Các kiểu dáng dữ liệu trong lập trình sẵn C# – Minh Hoàng Blog | Cùng nhau share kiến thức và kỹ năng xây dựng, tự học tiếng Nhật online cùng cuộc sống thường ngày Nhật Bản!
11 months ago
<…> Các giao diện tmê mệt chiếu còn sót lại nlỗi Class, Interface, Delegate, Dynamic,… chúng ta đang nói chi tiết từng một số loại trong số bài viết <…>


0
Reply
Bài viết được xem như nhiều
Bài viết được bình luận các
Welcome to Minc Hoàng Blog
Kết nối cùng với chúng tôi

Chuyên mục: Ý NGHĨA
Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *