作者:Jesus_kk | 来源:互联网 | 2023-01-20 16:07
1> mjwills..:
https://developers.google.com/protocol-buffers/docs/reference/csharp-generated#oneof建议TypeOneofCase
会告诉您设置了哪个:
Oneof Fields
oneof中的每个字段都有一个单独的属性,就像常规的奇异字段一样.但是,编译器还会生成一个附加属性,以确定枚举中的哪个字段已设置,以及枚举和清除oneof的方法.例如,对于这个字段定义
oneof avatar {
string image_url = 1;
bytes image_data = 2;
}
编译器将生成这些公共成员:
enum AvatarOneofCase
{
NOne= 0,
ImageUrl = 1,
ImageData = 2
}
public AvatarOneofCase AvatarCase { get; }
public void ClearAvatar();
public string ImageUrl { get; set; }
public ByteString ImageData { get; set; }
如果属性是当前的"case",则获取该属性将返回为该属性设置的值.否则,获取属性将返回属性类型的默认值 - 一次只能设置oneof的一个成员.
设置oneof的任何组成属性将改变oneof的报告"case".与常规奇异字段一样,您不能将字符串或字节类型的oneof字段设置为空值.将消息类型字段设置为null等同于调用oneof特定的Clear方法.