请教大佬 C#反射相关问题

2020-11-07 09:51:10 +08:00
 uubooks

有个 C#相关问题咨询下各位大佬: 比如我有个这样的类 class person() {

  public int Age{get;set;}
  
  public string Name{get;set;}
  
  public void Run();
  
  public void SaySomeThing(string words);
  
  public otherObject Others{get; private set;}  //这个对象里面还有属性或方法
}

我现在想实现功能就是我在用户界面上对这个类的属性进行访问赋值,例如这样 我创建了一个小红的 person,界面上我选择了小红后,那么可选的属性 AGE 经过翻译后显示为[年龄],后面有个数字框 用户可以输入 50,选择 name 属性,经过翻译后显示为[姓名],后面显示一个文本框,让用户可以赋值.

用户可以调用 RUN 方法.调用有参数的 SaySomeThing 方法.

同时,如果是其它对象,下面还会显示该对象的属性这样子..

我知道会用到反射.但具体不知该怎么做最好.

请大佬指点迷津,因为自学 C#,平时就偶尔写写小程序,没有多少经验..所以遇到高级功能就蒙逼了.

2505 次点击
所在节点    程序员
25 条回复
wangbudong
2020-11-07 15:54:14 +08:00
这关反射什么事
BigBunny
2020-11-07 18:03:44 +08:00
这个最好使用自定义特性配合使用
smilenceX
2020-11-07 22:29:37 +08:00
如果你只是需要绑定,前面已经有人说过了
如果你是需要实现一个像 visual studio 的属性编辑器那样的功能,可以在 github 搜 property grid,有相应的实现。
ian19znj
2020-11-07 23:41:57 +08:00
我明白楼主的意思了,楼上正解,PropertyGrid 应该就是。推荐 Xceed 家的 PropertyGrid,这里附个链接,楼主你看看是不是你想要的。
https://github.com/xceedsoftware/wpftoolkit/wiki/PropertyGrid
forgottencoast
2020-11-18 10:55:58 +08:00
这使用了哪一个框架来做界面的? WinForm 还是 WPF ?还是别的?
如果还没开始,用 WinForm 最简单,什么都不用学,直接获取值给界面赋值就可以了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/722609

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX