Learn C#.NET, ASP.NET MVC 5,ASP.NET Core that you can increase your knowledge and coding to develop the real-time project.


Friday, April 13, 2018

[C#]: Why should we use Interface in c#

In this post, we will discuss Interface in C# and Why should we use Interface in c#. Learn about the interface in c# with real time example. I hope this will be very helpful for developing real-time projects for freshers as well as experienced people.

Why should we use Interface in c#

What is the need for Interface in c#? Why use Interface?

  • It is used to Decouple the application.
  • It is very useful for Dependency Injection.
  • It is useful for Test isolation and Mocking.
  • It is used for Extensibility

What is Interface in C#?

  • An interface can contain only the declaration of properties, methods, events, indexers etc.
  • Interface member does not have the definition.
  • Interface member is by default Public. We can not provide access modifier to the interface member.
  • We can inherit more than one interface in a class. Once we inherit interface in a class, we must provide a definition to the interface member.
  • An interface cannot contain fields, operators, instance constructor, etc.
In order to work with the interface, we use the "Interface" keyword to create an interface. We can provide "I" as an interface naming prefix for interface names like IVendor, ICustomer etc.

Syntax:
  1. interface interface_name  
  2.    {   
  3.        // interface member declaration  
  4.    }  



Note: 
We can not provide access modifiers, static, sealed and abstract keywords to the interface member.

Example

Create an interface which has a name like IVendor as follows.
  1. interface IVendor  
  2.    {  
  3.        bool AllowAccessToUser { getset; }  
  4.        string GetVendorName(int vendorId);  
  5.    }  

Now, we need to create a class to implement interface member. Create a class which has a name like Vendor as follows. 
  1. public class Vendor: IVendor  
  2.    {  
  3.        public bool AllowAccessToUser { getset; }  
  4.        public string GetVendorName(int vendorId)  
  5.        {   
  6.            string vendorName =string.Empty;  
  7.            switch (vendorId)  
  8.            {   
  9.                case 1:  
  10.                    vendorName = "TATA";  
  11.                    AllowAccessToUser = true;  
  12.                    break;  
  13.                case 2:  
  14.                    vendorName = "TCS";  
  15.                    AllowAccessToUser = true;  
  16.                    break;  
  17.                default:  
  18.                    vendorName = "NULL";  
  19.                    AllowAccessToUser = false;  
  20.                    break;  
  21.            }  
  22.            return vendorName;                  
  23.        }  
  24.    }  

We can call the vendor class member by creating an instance of vendor class from the main method. Define the main method to access the vendor detail. There is one method, "GetVendorName()", based on vendorId as shown in the above example. In the same way, we have created one property for user permission. Based on the vendor we can provide the access to the user. 

  1. class Program  
  2.     {         
  3.         static void Main(string[] args)  
  4.         {  
  5.             Vendor vendor = new Vendor();             
  6.             Console.WriteLine("Vendor name is {0}, Allow access to user is {1}", vendor.GetVendorName(1),vendor.AllowAccessToUser);  
  7.             Console.WriteLine("Vendor name is {0}, Allow access to user is {1}", vendor.GetVendorName(4), vendor.AllowAccessToUser);  
  8.             Console.ReadLine();  
  9.         }  
  10.     }  

Output
Why should we use Interface in c#

How to implement more than one interface in a class.


Create two interface names as "IVendor" and "IUserPermission". Copy the above example and paste it into a separate class. Create one more interface "IUserPermission" interface having one property and remove the property used in IVendor interface. Paste into the newly-created interface; i.e., "IUserPermission". There are no major changes.
This is the example to understand how to implement more than one interface in a class.
  1. interface IVendor  
  2.    {         
  3.        string GetVendorName(int vendorId);  
  4.    }  
  5.    interface IUserPermission  
  6.    {  
  7.        bool AllowAccessToUser { getset; }  
  8.    }  
  9.    public class Vendor : IVendor, IUserPermission  
  10.    {  
  11.        public bool AllowAccessToUser { getset; }  
  12.        public string GetVendorName(int vendorId)  
  13.        {   
  14.            string vendorName =string.Empty;  
  15.            switch (vendorId)  
  16.            {   
  17.                case 1:  
  18.                    vendorName = "TATA";  
  19.                    AllowAccessToUser = true;  
  20.                    break;  
  21.                case 2:  
  22.                    vendorName = "TCS";  
  23.                    AllowAccessToUser = true;  
  24.                    break;  
  25.                default:  
  26.                    vendorName = "NULL";  
  27.                    AllowAccessToUser = false;  
  28.                    break;  
  29.            }  
  30.            return vendorName;                  
  31.        }  
  32.    }  
  33.    class Program  
  34.    {         
  35.        static void Main(string[] args)  
  36.        {  
  37.            Vendor vendor = new Vendor();             
  38.            Console.WriteLine("Vendor name is {0}, Allow access to user is {1}", vendor.GetVendorName(1),vendor.AllowAccessToUser);  
  39.            Console.WriteLine("Vendor name is {0}, Allow access to user is {1}", vendor.GetVendorName(4), vendor.AllowAccessToUser);  
  40.            Console.ReadLine();  
  41.        }  
  42.    }  

We will discuss the type of interface and real-time use of the interface in part two of this series.

I hope you understood the basic concept of interface.

More information please watch the video as follows:

Share:

0 comments:

Post a Comment

Upcoming Articles/Videos

Design Pattern
SOLID Design Principles
Copyright © Programming With Shri | Powered by Shrimant Telgave Home | Disclaimer | Privacy Policy | Terms and Conditions Design by Shrimant Telgave