top of page

Generics - generic containers List<T>

  • Writer: Renee Li
    Renee Li
  • Oct 17
  • 1 min read

Mini series 1: interface IFilter


  • image type

  • video type

  • IFilter interface class, including void Add Filter

  • main


namespace GP2
{
    public interface IFilter
    {
        void AddFilter();
    }
}
namespace GP2
{
    public class Video : IFilter
    {
        public string _videoName { set; get; }

        public Video(string videoName)
        {
            _videoName = videoName;
        }

        public void AddFilter()
        {
            Console.WriteLine("Video filter is added to " + _videoName);
        }
    }
}
namespace GP2
{
    public class Image: IFilter
    {
        public string _imageName { set; get; }

        public Image(string imageName)
        {
            _imageName = imageName;
        }

        public void AddFilter()
        {
            Console.WriteLine("Image filter is added to " + _imageName);
        }


    }
}
namespace GP2
{
    internal class Program
    {
        static void Main(string[] args)
        {
            List<IFilter> filters = new List<IFilter>();
            filters.Add(new Image("Image1"));
            filters.Add(new Video("Video1"));

            foreach (var filter in filters)
            {
                filter.AddFilter();
            }

            Console.WriteLine(filters.Count);

            Console.WriteLine(((Image)filters[0])._imageName);
            Console.WriteLine(((Video)filters[1])._videoName);
        }
    }
}

I basically created a list for IFilter and add image objects or Video objects into this list and apply filter for each objects.


To make it simple and just for the purpose of practicing generics, add filter method is just to output:

Image filter is added to Image1
Video filter is added to Video1 

Now, my question is what if interface class is Generics<T>?

Stay tuned for mini series 2.


Comments


bottom of page