万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    C# private変数を取得する

     /// <summary>
        /// プライベート変数の取得.
        /// </summary>
        /// <param name="obj">Object.</param>
        /// <param name="privateName">Private name.</param>
        /// <typeparam name="T">The 1st type parameter.</typeparam>
        protected T GetPrivate<T>(object obj, string privateName)
        {
            System.Reflection.FieldInfo fieldInfo = obj.GetType().GetField(privateName,
                System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
            return (T)fieldInfo.GetValue(obj);
        }

    fieldInfo.GetValue(obj) as T; だと

    error CS0413: The `as' operator cannot be used with a non-reference type parameter `T'. Consider adding `class' or a reference type constraint

    になる。 Tが参照型だからではないからか?

    stackoverflow.com