2017-08-04 91 views
1

我知道名單中邦德的支持,我只是想知道,如果我們能夠創建一個像C#債券:我可以有我的債券結構中的自定義類列表?

class Car 
{ 
    string Model; 
    string PlateNumber; 

    // ... 
} 

類然後我可以在債券文件是這樣的?

namespace MyNameSpace 
{ 
    struct Gallery 
    { 
     0: required List<Cars> AllCars; 
    } 
} 

如果可能的話,任何人都可以寫一個完整的債券文件應該是怎樣的例子嗎?

另外我應該添加類定義以便能夠像那樣使用它?

編輯:我需要Car是一個綁定結構,作爲Gallery的一部分進行序列化,所以無論何時我檢索Gallery對象,我都應該能夠訪問和修改屬於它的汽車列表。

回答

0

由於您希望Car是一個Bond結構,因此您可以將它定義在與Gallery相同的.bond文件中,然後在定義AllCars字段時使用它。下面是一個例子gallery.bond:

namespace MyNameSpace; 

struct Car 
{ 
    0: string Model; 
    1: string PlateNumber; 
} 

struct Gallery 
{ 
    // Car needs to be defined/imported before Gallery so it's visible here 
    0: required vector<Car> AllCars; 
} 

需要注意的是邦德的vector字段類型映射到的List C#。 (Bond的list映射到LinkedList。)

gbc代碼生成工具的文檔會談,儘管簡單地講,大約可以使用the types a field definition。如果最終需要遞歸結構,則需要使用forward declarationsnullable fields

如果你想要,你可以把Car是它自己的.bond文件,然後將該.bond文件導入到帶有Gallery的文件中。有an example showing how importing works,如果你有興趣。