My question is shown in this code
I have class like that
public class MainCS
{
public int A;
public int B;
public int C;
public int D;
}
public class Sub1
{
public int A;
public int B;
public int C;
}
public void MethodA(Sub1 model)
{
MainCS mdata = new MainCS() { A = model.A, B = model.B, C = model.C };
// is there a way to directly cast class Sub1 into MainCS like that
mdata = (MainCS) model;
}
What he wants to say is:
“If you have two classes which share most of the same properties you can cast an object from class
ato classband automatically make the system understand the assignment via the shared property names?”Option 1: Use reflection
Disadvantage : It’s gonna slow you down more than you think.
Option 2: Make one class derive from another, the first one with common properties and other an extension of that.
Disadvantage: Coupled! if your’re doing that for two layers in your application then the two layers will be coupled!
Let there be:
Now here is an extension for Object type:
Now you use it like this:
Method cast checks common properties between two objects and does the assignment automatically.