カスタム属性が見えるモノ

最近知ったショックなこと。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Sample
{
    [AttributeUsage(AttributeTargets.Class)]
    class MyAttribute : Attribute
    {
        public string Name { private set; get; }

        public MyAttribute (string name)
        {
            Name = name;
        }
    }

    // _nameが参照できる!?
    [My(_name)]
    class Program
    {
        private const string _name = "mei";

        static void Main (string[] args)
        {
        }
    }
}

C#が登場してからずっと使ってきているのに、カスタム属性がクラス修飾なしでフィールドにアクセス出来ることを知りませんでした。(^^;