需求:一个函数里面需要访问传入参数的字段,这个传入的函数不同的情况会传入不同的类型,试了模版,但是不可以访问传入参数得字段
31条回答 默认 最新
- 一直免费一直爽 2024-08-15 11:00关注
以下回复参考:皆我百晓生、券券喵儿等免费微信小程序作答:
在C#中,如果你想在一个函数中访问传入参数的字段,你可以使用泛型和反射来实现。以下是一个示例:
using System; using System.Reflection; public class Program { public static void Main() { var obj1 = new MyClass1 { Field1 = "Hello" }; var obj2 = new MyClass2 { Field2 = 42 }; PrintField(obj1); // 输出: Hello PrintField(obj2); // 输出: 42 } public static void PrintField<T>(T obj) { Type type = typeof(T); PropertyInfo[] properties = type.GetProperties(); foreach (PropertyInfo property in properties) { Console.WriteLine(property.GetValue(obj, null)); } } } public class MyClass1 { public string Field1 { get; set; } } public class MyClass2 { public int Field2 { get; set; } }
在这个示例中,我们定义了一个泛型方法
PrintField<T>
,它接受一个类型为T
的对象作为参数。然后,我们使用反射来获取对象的类型,并遍历其属性,打印每个属性的值。这样,我们可以处理不同类型的对象,而不需要知道它们的具体类型。解决 无用评论 打赏 举报
悬赏问题
- ¥15 CCF-CSP 2023 第三题 解压缩(50%)
- ¥30 comfyui openpose报错
- ¥20 Wpf Datarid单元格闪烁效果的实现
- ¥15 图像分割、图像边缘提取
- ¥15 sqlserver执行存储过程报错
- ¥100 nuxt、uniapp、ruoyi-vue 相关发布问题
- ¥15 浮窗和全屏应用同时存在,全屏应用输入法无法弹出
- ¥100 matlab2009 32位一直初始化
- ¥15 Expected type 'str | PathLike[str]…… bytes' instead
- ¥15 三极管电路求解,已知电阻电压和三级关放大倍数