Interface segregation principle is easily enough to understand. Let’s create classes for two devices. New multifunctional devices, that can scan to folder, send files to email or telegram. And old devices, that can scan pictures to folders.

    public interface IMfd
    {
        public void Print();
        public void ScanToFolder();
        public void ScanToEmail();
        public void ScanToTelegram();
    }

    public class NewMFD : IMfd
    {
        public void Print()
        {
            Console.WriteLine("Printing...");
        }

        public void ScanToEmail()
        {
            Console.WriteLine("Scan to Email");
        }

        public void ScanToFolder()
        {
            Console.WriteLine("Scan to Folder");
        }

        public void ScanToTelegram()
        {
            Console.WriteLine("Scan to Telegram");
        }
    }

    public class StandardMfd : IMfd
    {
        public void Print()
        {
            Console.WriteLine("Printing...");
        }

        public void ScanToEmail()
        {
            throw new NotImplementedException();
        }

        public void ScanToFolder()
        {
            Console.WriteLine("Scan to Folder");
        }

        public void ScanToTelegram()
        {
            throw new NotImplementedException();
        }
    }

Both classes realize IMfd interface, but StandardMfd not realized two methods. There is violation of interface segregation principle. Classes shouldn’t depend on interfaces with methods, that our class can’t realize. You should divide interface IMfd into several parts. For example IStandardMfd with scanning to folder and IAdditionalMfd with others functions..

    public interface IStandardMfd 
    {
        public void Print();
        public void ScanToFolder();        
    }
    public interface IAdditionalMfd 
    {
        public void ScanToEmail();
        public void ScanToTelegram();
    }