@实习人生 2022-11-01 15:43 采纳率: 100%
浏览 80
已结题

C# Category、DisplayName

不太清楚Category和DisplayName的含义,它为什么需要进行序列化,怎么会有一个属性来接收它的值

const string CategoryBasic = "通用";
[Category(CategoryBasic), DisplayName("光幕使能")]
public bool Basic_LightCurtainEnabled { get; set; }

  • 写回答

2条回答 默认 最新

  • wanghui0380 2022-11-01 16:56
    关注

    1.这个跟序列化没关系,如果你们的代码有跟序列化扯上关系,那是你们自己的序列化代码的事情
    2.你发的这个叫特性,默认如果你们没做其他定义,Category是框架自己的带的,给IDE工具箱用的,也是给PropertyGrid这种控件的用的
    打开你的IDE,随便建立一个Winform项目,随便拖一个控件出来,然后你看IDE的属性栏,你就看到他有属性,而且属性分组了,并且还有分组名
    这个就是他的用处

    img

    [Category(“外观”), DisplayName("光幕使能")] 他就会如上显示在外观那个分组,同时会把显示的名字显示成“光幕使能”,而不是显示“Basic_LightCurtainEnabled”

    如果你想在代码里实现这样的东西,可以用用ProtertyGrid这个控件


    这是我们通常认为的系统方法,如果你们的代码把这些玩意设计成其他功能,我们就没办法说了。毕竟特性(java叫注解)这东西属于声明式编程,你是这么声明的,而如何实现声明的功能,那就看自己的代码。反正系统自带实现是用在PropertyGrid这里

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月11日
  • 已采纳回答 11月3日
  • 创建了问题 11月1日

悬赏问题

  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启