第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何獲取特定屬性的PropertyInfo?

如何獲取特定屬性的PropertyInfo?

FFIVE 2019-10-08 09:51:16
我想獲取特定屬性的PropertyInfo。我可以使用:foreach(PropertyInfo p in typeof(MyObject).GetProperties()){    if ( p.Name == "MyProperty") { return p }}但是必須有一種方法可以做類似的事情typeof(MyProperty) as PropertyInfo在那兒?還是我堅(jiān)持進(jìn)行類型不安全的字符串比較?干杯。
查看完整描述

3 回答

?
斯蒂芬大帝

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個贊

您可以使用新的nameof()操作符是在Visual Studio的C#6部分,2015年提供更多信息這里。


對于您的示例,您將使用:


PropertyInfo result = typeof(MyObject).GetProperty(nameof(MyObject.MyProperty));

編譯器將轉(zhuǎn)換nameof(MyObject.MyProperty)為字符串“ MyProperty”,但由于Visual Studio,ReSharper等知道如何重構(gòu)nameof()值,因此您無需重構(gòu)就可以重構(gòu)屬性名,從而獲得了好處。


查看完整回答
反對 回復(fù) 2019-10-08
?
Qyouu

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超11個贊

帶有l(wèi)ambdas /的.NET 3.5方式Expression不使用字符串...


using System;

using System.Linq.Expressions;

using System.Reflection;


class Foo

{

    public string Bar { get; set; }

}

static class Program

{

    static void Main()

    {

        PropertyInfo prop = PropertyHelper<Foo>.GetProperty(x => x.Bar);

    }

}

public static class PropertyHelper<T>

{

    public static PropertyInfo GetProperty<TValue>(

        Expression<Func<T, TValue>> selector)

    {

        Expression body = selector;

        if (body is LambdaExpression)

        {

            body = ((LambdaExpression)body).Body;

        }

        switch (body.NodeType)

        {

            case ExpressionType.MemberAccess:

                return (PropertyInfo)((MemberExpression)body).Member;

            default:

                throw new InvalidOperationException();

        }

    }

}


查看完整回答
反對 回復(fù) 2019-10-08
?
森欄

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超5個贊

你可以這樣做:


typeof(MyObject).GetProperty("MyProperty")

但是,由于C#沒有“符號”類型,因此沒有什么可以幫助您避免使用字符串。順便說一下,為什么將這種類型稱為不安全類型?


查看完整回答
反對 回復(fù) 2019-10-08
  • 3 回答
  • 0 關(guān)注
  • 1424 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號