热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

确定在C#中设置了哪个'oneof'proto3字段

如何解决《确定在C#中设置了哪个'oneof'proto3字段》经验,为你挑选了1个好方法。



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方法.


推荐阅读
author-avatar
Jesus_kk
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有