gpt4 book ai didi

c# - 在 C# 中访问实例级自定义属性

转载 作者:行者123 更新时间:2023-11-30 19:47:04 25 4
gpt4 key购买 nike

假设我有以下代码:

class A
{
[UsefulAttribute("foo")]
B var1;
[UsefulAttribute("bar")]
B var2;

...
}


class B
{
public string WriteSomethingUseful()
{
?????
}
}

我的问题是,它需要在 ????? 中放入什么代码,以便在我调用 var1.WriteSomethingUseful 时得到 的输出strong>foo,当我调用 var2.WriteSomethingUseful 时,我得到的输出是 bar?

我觉得这是一个很直截了当的问题,我认为我的主要问题是我想了太久让自己陷入了一种困惑的状态!!!

说真的,我已经定义了 UsefulAttribute 并意识到部分代码必须是 GetCustomAttributes(typeof(UsefulAttribute)...) 调用。我感到困惑的地方是如何在实际实例中提取这些值,而不是在类型级别。

非常感谢,皮特

最佳答案

这是不可能的。对于初学者来说,如果 A 的多个不同实例引用了同一个 B 怎么办?或者如果 B 的同一个实例同时被 var1 和 var2 引用怎么办?

当您在字段上设置属性时,您将该属性附加到类 A 的类型,而不是存储在字段 var1 中的类 B 的实例。

解决此问题的正常方法是将数据存储为 B 的属性,通过属性 setter 或构造函数参数设置它,然后从 WriteSomethingUseful 方法访问该属性。

关于c# - 在 C# 中访问实例级自定义属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7363374/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com