Constructors

Constructor, bir sınıf new’lendiğinde çalışacak kod bloğudur
Birden fazla constructor yazılabilir (overloading). girilen parametreye göre ilgili constructor çalışır

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Constructors
{
    class Program
    {
        static void Main(string[] args)
        {
            /*
             * Constructor, bir sınıf new'lendiğinde çalışacak kod bloğudur
             * Birden fazla constructor yazılabilir (overloading). girilen parametreye göre ilgili constructor çalışır**/
            CustomerManager customerManager = new CustomerManager(15);
            customerManager.List();

            CustomerManager customerManager2 = new CustomerManager();
            customerManager2.List();


            Product product = new Product { Id = 1, Name = "Laptop" };
            Product product2 = new Product(2, "Computer");  //Constructor sayesinde propertyleri parametre şekl isteyebiliriz

            //Daha önce interface ile logger örneği yapmıştık burada constructor kullanarak işlemi daha düzenli hale getirdik
            EmployeeManager employeeManager = new EmployeeManager(new DatabaseLogger());
            employeeManager.Add();

            PersonManager personManager = new PersonManager("Product");
            personManager.Add();

            Console.ReadLine();
        }
    }

    class CustomerManager
    {
        //ctro tab tab ile constructor  oluşturalabilir
        //Classımızdan nesne ürettiğimizde constructor çaışacak ve zorunlu parametre isteyecek
        private int _count;
        public CustomerManager(int count)
        {
            _count = count;
        }
        public CustomerManager()
        {

        }

        public void List()
        {
            Console.WriteLine("Listed {0} items", _count);
        }
        public void Add()
        {
            Console.WriteLine("Added!");
        }
    }

    class Product
    {
        //Constructor1
        public Product()
        {

        }
        //Constructor2
        private int _id;
        private string _name;
        public Product(int id, string name)
        {
            _id = id;
            _name = name;
        }
        public int Id { get; set; }
        public string Name { get; set; }
    }

    //Contructor Injection
    interface ILogger
    {
        void Log();
    }

    class DatabaseLogger : ILogger
    {
        public void Log()
        {
            Console.WriteLine("Logged to Database");
        }
    }

    class FileLogger : ILogger
    {
        public void Log()
        {
            Console.WriteLine("Logged to File");
        }
    }

    class EmployeeManager
    {
        //constructor injection
        private ILogger _logger;
        public EmployeeManager(ILogger logger)
        {
            _logger = logger;
        }
        public void Add()
        {
            _logger.Log();
            Console.WriteLine("Added!");
        }
    }

    //Temel Sınıfın Yapıcı Bloğuna Parametre Yollamak
    class BaseClass
    {
        private string _entity;
        public BaseClass(string entity)
        {
            _entity = entity;
        }
        public void Message()
        {
            Console.WriteLine("{0} message",_entity);
        }
    }

    class PersonManager : BaseClass
    {
        public PersonManager(string entity):base(entity)    //PersonManager contructorda aldığı parametreyi BaseClass'a yolluyor
        {

        }
        public void Add()
        {
            Console.WriteLine("Added!");
            Message();
        }
    }
}

Yorum bırakın

WordPress.com'da bir web sitesi veya blog oluşturun

Yukarı ↑

WordPress.com ile böyle bir site tasarlayın
Başlayın