C#反射相关问题

哆嗦A梦 2020-11-07 10:07:46
有个 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#,平时就偶尔写写小程序,没有多少经验..所以遇到高级功能就蒙逼了.
...全文
508 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
真的小白啊 2020-11-07
  • 打赏
  • 举报
回复
当然了可以去了解一下反射和依赖注入 https://www.bilibili.com/video/BV1wx411K7rb?p=30
真的小白啊 2020-11-07
  • 打赏
  • 举报
回复
各位大佬,献丑了

	public class Program
	{
		private static void Main(string[] args)
		{
			Person xiaoHong = new Person();
			xiaoHong.GetType().GetProperty("Name").SetValue(xiaoHong, "小红");
			xiaoHong.GetType().GetProperty("Age").SetValue(xiaoHong, 10);
			xiaoHong.GetType().GetMethod("SaySomeThing").Invoke(xiaoHong, new object[] { "Hello World!" });

			Person xiaoMing = new Person() { Age = 20, Name = "小明" };
			xiaoMing.SaySomeThing("Nice to meet you!");

			Console.ReadKey();
		}
	}

	public class Person
	{
		public string Name { get; set; }

		public int Age { get; set; }

		public void SaySomeThing(string words)
		{
			string text = $"My name is {Name}, I'm {Age} years old. This is my first code '{words}'.";
			Console.WriteLine(text);
		}
	}

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧