申し訳ありません。
https://teratail.com/questions/53908
で質問した内容の再投稿になります。
dynamicを指定してできたと思っていたのですが
早とちりをしてしまい、ビルドを実行したらエラーが発生してしまい
出来ていませんでした。
以下の内容を再投稿させて頂きます。
================================================================
C#を始めて1週間ぐらいなのですが、
以下のコードのforeachのvar変数をメソッドに渡したいのですが、受け取るメソッドの引数の型に
varが指定できないのですがどうすればいいのでしょうか?
受け渡す前と受け取った後で同じように処理を記述したいと思ってます。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Testwebapplication { class TestClass { public int pro1 = 1; public int pro2 = 2; } class ExtendedClass : とある既存のフレームワークの抽象クラス { public フレームワークのオーバーライドしたメソッド() { TestClass[] test = { new TestClass(), new TestClass() }; foreach(var hoge in test.Select((e) => new { e })) { Console.WriteLine(hoge.e.pro1); Console.WriteLine(hoge.e.pro2); TestMethod(hoge); } } private void TestMethod(? hoge2) //<-varはエラーになる { Console.WriteLine(hoge2.e.pro1); // <-呼び出し元と同じように出力したい } } }
================================================================
追記:
・コードを詳細にしました。
・情報が不足しておりましたが、とある既存のシステムのWebアプリで前回担当されていた方が作成したフレームワークを使用しております。(担当された方に聞きたいのですが担当された方は・・・)
・ビルドすると「エラー CS0656 コンパイラが必要とするメンバー 'Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Create' がありません」と表示されてしまいます。
・.NET Framewaork4.6です。
・VisualStudio2015で開発しています。
回答3件
あなたの回答
tips
プレビュー