簡體   English   中英

將一個類對象轉換為其他類對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM