質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.40%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

2回答

3671閲覧

C# GetProperty GetValue SetValueについて

komatta2018mt

総合スコア15

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2019/01/22 06:57

C#でGetPropertyを使用し、プロパティの値の設定、取得を行いたいと思い、以下のサンプルを見つけましたが、エラーとなってしまいます。

エラー内容は以下です。
・GetValue 引数 1 を指定するメソッド 'GetValue' のオーバーロードはありません。
・SetValue 引数 2 を指定するメソッド 'SetValue' のオーバーロードはありません。

以下を見てみましたが、prop.GetValue(obj)と記述されています。
https://docs.microsoft.com/ja-jp/dotnet/api/system.reflection.propertyinfo.getvalue?view=netframework-4.6.1

どうすれば、エラーとならず、プロパティの値を設定取得できますでしょうか。

static void Main(string[] args) { var student = new Student() { ID = "0001", Name = "aiueo" }; // プロパティ情報の取得 var property = typeof(Student).GetProperty("Name"); // インスタンスの値を取得 var beforeName = property.GetValue(student); // インスタンスに値を設定 property.SetValue(student, "newName"); Console.WriteLine($"{student.ID}, {beforeName}, {student.Name}"); // 0001, aiueo, newName } class Student { public string ID { set; get; } public string Name { set; get; } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

papinianus

2019/01/22 07:12

エラーにならないです。using System.Reflection;は指定していますよね。環境等追記なさっては?
komatta2018mt

2019/01/22 07:19

papinianus様 ご指摘、ありがとうございます。 using System.Reflectionは指定しております。 ご指摘いただいた後、環境を確認しましたところ、.Net Framework 4.0でした。 これを4.6.1にしますと、エラーが消えました。
guest

回答2

0

自己解決

.Net Frameworkを変更することで、エラーが消えました。

.Net Framework 4.0 → .Net Framework 4.6.1

投稿2019/01/22 07:20

komatta2018mt

総合スコア15

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

動きますが…
https://wandbox.org/permlink/QJ7KF7a1Pj9QVgf0

C#のバージョンですかね?

投稿2019/01/22 07:18

izmktr

総合スコア2856

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

komatta2018mt

2019/01/22 07:22

izmktr様 ご回答ありがとうございます。 .NET Frameworkのバージョンを変更することで、動作するようになりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.40%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問