投稿者 SSD  (社会人) 投稿日時 2023/1/23 10:22:33
NameOf演算子の引数でtypeOrMemberとなっている部分にはクラスや非共有プロパティーなどを渡すことができます。
この引数部分でクラスを入力し、ドットを入力したところで非共有であってもメンバがインテリセンスによって一覧表示されます。
一般的なメソッドの引数ではこのようにはなりません。

今DisplayName属性値を取得するメソッドを作成しており、以下のようにしました。

    Public Shared Function GetDisplayName(Of T)(propName As StringAs String
        'プロパティー情報取得 
        Dim propInfo = GetType(T).GetProperty(propName)
        '属性取得 
        Dim att = Attribute.GetCustomAttribute(propInfo, GetType(DisplayNameAttribute))
        'キャストして属性値取得 
        Dim name = CType(att, DisplayNameAttribute).DisplayName
        Return name
    End Function


例えばClassAのAlphaプロパティーのDisplayName属性値を取得する場合はこんな感じで呼び出すことになります。

    Dim name = GetDisplayName(Of Class)(NameOf(ClassA.Alpha))


呼び出し時の引数を(Of Class)(NameOf(ClassA.Alpha))ではなく、NameOf演算子のように(ClassA.Alpha)だけにしたいのですが、メソッドの引数をどうすれば受け取れるようにできるのでしょうか?