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();
}
}