c# - 属性中的名称

标签 c# nameof .net-attributes

<分区>

考虑到 Myatt 属性和 MyObj 类,ObjName 属性在 Myatt 范围内是已知的有点奇怪> 属性。不是吗?

[AttributeUsage(AttributeTargets.Property)]
public class MyAtt : Attribute
{
    public MyAtt(string name)
    {
        this.Name = name;
    }

    public string Name
    {
        get; set;
    }
}

public class MyObj
{
    [MyAtt(nameof(ObjName))] //Can access to ObjName?!
    public int ObjID
    {
        get;
        set;
    }

    public string ObjName
    {
        get;
        set;
    }
}

更新:

抱歉,我想知道为什么第一种情况不可能而第二种情况可能。

1. [MyAtt(nameof(this.ObjName))] 
2. [MyAtt(nameof(ObjName))] 

我现在明白了。谢谢。

最佳答案

很好,它在那里得到支持,不是吗?所以不,这并不奇怪。

Documentation提到一个 Attribute 示例作为关键用例:

[DebuggerDisplay("={" + nameof(GetString) + "()}")]  
class C {  
    string GetString() { }  
}  

关于c# - 属性中的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43850731/

相关文章:

c# - 为什么 C# 编译器生成单个类来捕获多个 lambda 的变量?

c# - 使用 nameof 运算符而不是 CallerMemberNameAttribute 来通知 .NET 4.5.3 中的属性更改有什么好处吗?

c# - .NET 中的属性是什么?

c# - C# .NET 中的 "module"关键字是什么?

c# - 最有用的属性

c# - 从内存中用 C# 播放 MIDI 文件

c# - Azure native 客户端身份验证

c# - 为什么成员访问修饰符对 nameof() 很重要?

reflection - F# nameof 运算符不是一流的函数

c# - 使用单个查询更新两个表