1
鑑於此F#:無法在C#中投的F#對象
namespace DU_Sample
type StateA = { Counter: int }
type StateB = { Counter: int; Pass: bool }
type DU =
| A of StateA
| B of StateB
而這個C#:
[TestMethod]
public void TestMethod1()
{
var stateB = GetStateB();
Assert.IsTrue(stateB.IsB);
//Assert.IsTrue(((DU_Sample.StateB)stateB).Pass); // nope
//var nutherB = DU_Sample.DU.NewB(stateB); // nope
Assert.IsTrue(((dynamic)stateB).Item.Pass); // pass
}
private static DU_Sample.DU GetStateB()
{
var stateB = new DU_Sample.StateB(0, true);
return DU_Sample.DU.NewB(stateB);
}
我怎麼能投的區分聯合類型的這部分之一,以訪問那部分的屬性?
爲什麼'GetStateB'返回比'StateB'例如其他的東西嗎?有多混淆.. – ildjarn
我認爲你需要施放'stateB.Item'屬性。 –
你有沒有試過轉換成'DU_Sample.DU.B'? –