我想知道表示应该包含C#bond格式字段的表的最佳方法是什么?
我想要有类似于那种格式的东西
namespace MyProject
{
struct Key
{
0: required string Email;
}
struct Value
{
0: required string FirstName;
1: optional char Gender;
.
.
.
}
}
我不确定用C#bond格式表示char
,DateTime
和List<string>
的最佳方式是什么,以便在Object store中创建表时使用它们。< / p>
答案 0 :(得分:2)
根据Bond的官方文档,有以下类型:
基本类型:bool,uint8,uint16,uint32,uint64,int8,int16,int32,int64,float,double,string,wstring。
容器:blob,list,vector,set,map,nullable。
用户定义的类型:枚举,结构或绑定,其中T是结构。
但是,文档还解释了如果使用bond生成C#代码,如何生成DateTime,char等。这是在CLI命令中使用以下内容:
gbc c#--using =“DateTime = System.DateTime”date_time.bond
using参数是您放置类型别名的位置,例如“char = System.Char; DateTime = System.DateTime”。
我不知道这是否足以帮助您,如果您还有其他需要,请告诉我。
来源:
答案 1 :(得分:2)
我会将性别字段建模为枚举,因为这比char更明确; DateTime字段为uint64
,但使用a type converter将其转换为a DateTime struct in C#;并将List<string>
字段设为vector<string>
:
namespace MyProject;
using DateTime=uint64;
enum Gender
{
Unspecified;
...
}
struct Favorite { ... }
struct FrequentPagesURL { ... }
struct SomeType
{
...
7: DateTime DateJoined;
8: Gender Gender = Unspecified;
9: vector<Favorite> Favorites;
...
17: vector<FrequentPagesURL> FrequentPagesURLs;
...
}
您可能需要考虑将DateJoined字段建模为string
/ blob
并使用类型转换器将其转换为C#中的DateTimeOffset struct depending on your needs。< / p>