[英]Cast one class object to other class object
我有兩個A和B類,我想將A的實例轉換為B.最好的方法是什么? 如何創建實用程序類來執行此任務?
public class A
{}
public class B
{}
一個好的起點是查看關於Casting和Type Conversions的MSDN文檔。
由於兩個類之間沒有直接關系,因此您需要編寫轉換運算符 。 例如:
public class A
{
public int AValue { get; set; }
}
public class B
{
public int BValue { get; set; }
public static explicit operator B(A instanceOfA)
{
return new B { BValue = instanceOfA.AValue };
}
}
然后你可以寫:
A instanceOfA = new A { AValue = 7 };
B instanceOfB = (B)instanceOfA;
// Will output "7"
Console.WriteLine(instanceOfB.BValue);
我從這個例子中得到的文檔是在MSDN上, 使用轉換運算符 。
如果兩個類之間存在直接關系,例如B
派生自A
,例如:
public class A
{
public int Value { get; set; }
}
public class B : A
{
public string OtherValueSpecificToB { get; set; }
}
如果你想從B轉換為A,那么你就不需要任何額外的代碼:
B instanceOfB = new B { OtherValueSpecificToB = "b", Value = 3 };
A instanceOfBCastToA = (A)instanceOfB;
// Will output "3";
Console.WriteLine(instanceOfBCastToA.Value);
// Will not compile as when being treated as an "A" there is no "OtherValueSpecificToB" property
Console.WriteLine(instanceOfBCastToA.OtherValueSpecificToB);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.