Copy work as copying object not reference
When we need only value to use
We can use Copy
Same for Copy constructor
We need to copy constructor and paste into the other one without reference.

class Program
    {
        static void Main(string[] args)
        {
            string ABC_SiteUrl = "www.abc.com";
            string XYZ_SiteUrl = "www.xyz.com";
            Console.WriteLine($"Original Values 1={ABC_SiteUrl} 2={XYZ_SiteUrl}");
            Console.WriteLine(
                $"Reference  {object.ReferenceEquals(ABC_SiteUrl,XYZ_SiteUrl)}" +
                $"\n Is Equal= {object.Equals(ABC_SiteUrl,XYZ_SiteUrl)} ");
            Console.WriteLine();

            ABC_SiteUrl = string.Copy(XYZ_SiteUrl);
            Console.WriteLine("Copy object");
            Console.WriteLine($"After Change 1={ABC_SiteUrl} 2={XYZ_SiteUrl}");
            Console.WriteLine(
                $"Reference  {object.ReferenceEquals(ABC_SiteUrl, XYZ_SiteUrl)}" +
                $"\n Is Equal= {object.Equals(ABC_SiteUrl, XYZ_SiteUrl)} ");
            Console.WriteLine();

            ABC_SiteUrl = XYZ_SiteUrl;
            Console.WriteLine("Assigne Reference");
            Console.WriteLine($"After Change 1={ABC_SiteUrl} 2={XYZ_SiteUrl}");
            Console.WriteLine(
                $"Reference  {object.ReferenceEquals(ABC_SiteUrl, XYZ_SiteUrl)}" +
                $"\n Is Equal= {object.Equals(ABC_SiteUrl, XYZ_SiteUrl)} ");


            Console.ReadLine();
        }
    }


Copy in C#?
It is just get value and paste it into new variable
Reference is different
Required object for coping
Dependence in nature



Constructor Copy
class SiteInfo
    {
        private string SiteDomain { get; }
        private string Sitehots { get; }
        private string Protocal { get; }
        public SiteInfo(string SiteName)
        {
            SiteDomain = SiteName.Split('.')[2];
            Sitehots = SiteName.Split('/').LastOrDefault();
            Protocal = SiteName.Split('/').FirstOrDefault();
        }

        public SiteInfo(SiteInfo info)
        {
            SiteDomain = info.SiteDomain;
            Sitehots = info.Sitehots;
            Protocal = info.Protocal;
        }

        public string ShowData
        {
            get {
return $"Site Domain = {SiteDomain} "+
$"\nSite host={Sitehots}\nProtocal={Protocal}";
 }
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
          
string ABC_SiteUrl = "http://www.abc.com";
            string XYZ_SiteUrl = "https://www.xyz.in";

            //Copy constructor
            SiteInfo siteInfo = new SiteInfo(ABC_SiteUrl);
            Console.WriteLine("Site = " + ABC_SiteUrl);
            Console.WriteLine(siteInfo.ShowData);
            Console.WriteLine();

            SiteInfo siteInfocopy = new SiteInfo(siteInfo);
            Console.WriteLine("After copy constructor");
            Console.WriteLine(siteInfocopy.ShowData);
            Console.WriteLine(
                $"Reference= {object.ReferenceEquals(siteInfocopy, siteInfo)}" +
                $"\n Is Equal= {object.Equals(siteInfocopy, siteInfo)}");
            Console.WriteLine();

           
            SiteInfo siteinfos = new SiteInfo(siteInfocopy);
            Console.WriteLine("Copy Constuctor");
            Console.WriteLine(
                $"Reference= {object.ReferenceEquals(siteInfocopy, siteInfo)}" +
                $"\n Is Equal= {object.Equals(siteInfocopy, siteInfo)}");
            Console.WriteLine();

            siteInfo = siteInfocopy;
            Console.WriteLine("Direct Reference");
            Console.WriteLine(
                $"Reference= {object.ReferenceEquals(siteInfocopy, siteInfo)}" +
                $"\n Is Equal= {object.Equals(siteInfocopy, siteInfo)}");
        
            Console.ReadLine();
        }
    }

No comments

sblog4u. Powered by Blogger.

Topics

Real World Programming Concept in 2 mins

Clone

What is Clone ? It look like duplicate of original Reference is same for string And different for objects Once clone crea...