Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Casting one class to another which interited from same baseClass

Tags:

c#

inheritance

It is possible to cast class1 to class2 ? result variable retrieves always null value.

class Program
{
    static void Main(string[] args)
    {
        Class1 class1 = new Class1();
        class1.Field1 = "1";
        class1.Field2 = "2";
        class1.Field3 = "3";
        class1.Field4 = "4";
        class1.Field5 = "5";
        BaseClass base1 =  (BaseClass)class1;

        Class2 class2 = base1 as Class2;

        string result = class2.Field1;
    }
}

public class BaseClass
{
    public string Field1 { get; set; }
    public string Field2 { get; set; }
    public string Field3 { get; set; }
}

public class Class1 : BaseClass
{
    public string Field4 { get; set; }
    public string Field5 { get; set; }
}

public class Class2 : BaseClass
{
    public string Field6 { get; set; }
    public string Field7 { get; set; }
}
like image 556
Cihan Avatar asked Jul 24 '26 05:07

Cihan


1 Answers

No, it's not possible to cast like this. You'll need to write your own conversion method or operator. The object base1 refers to simply isn't a Class2. What would its values of Field6 and Field7 be?

like image 163
Jon Skeet Avatar answered Jul 26 '26 19:07

Jon Skeet



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!