質問

皆様にお伝えしたくて書き込みシステムを必要とする私の取得のプロパティの値オブジェクト、好ましくは使用している。このプロジェクトで、xbox360、走行時のコンパクトの枠組みを備えることによって遅いのガベージコレクタ-この意味で重要な要素になることに合う配分!

唯一の方法は、思ったことで:

Foo Something; //an object I want to get data from
PropertyInfo p; //get this via reflection for the property I want
object value = p.GetGetmethod().Invoke(Something, null);
//Now I have to cast value into a type that it should be

嫌いこと2理由:

  • 鋳造は、陶芸家、ジェネリック医薬品のためのプログラマー
  • ではもちろん生ごみは毎回のようなプリミティブ値で得ボックス入り。

ある一般的な方法の値から物件ますのボックスプリミティブ?

編集::応Jons答えは、このコードの盗難からブログなどをしないので配分の問題を解決:

        String methodName = "IndexOf";
        Type[] argType = new Type[] { typeof(char) };
        String testWord = "TheQuickBrownFoxJumpedOverTheLazyDog";

        MethodInfo method = typeof(string).GetMethod(methodName, argType);

        Func<char, int> converted = (Func<char, int>)Delegate.CreateDelegate
            (typeof(Func<char, int>), testWord, method);

        int count = GC.CollectionCount(0);

        for (int i = 0; i < 10000000; i++)
        {
            int l = converted('l');

            if (GC.CollectionCount(0) != count)
                Console.WriteLine("Collect");
        }
役に立ちましたか?

解決

代わいを委譲のgetterメソッドを使用 Delegate.CreateDelegate -かどうかはわかりませんが対応のコンパクトの枠組みで使用されるバージョンのXboxものです。

してい ブログDelegate.CreateDelegate 簡便で、必要な見どに適用することができ、Xbox.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top