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

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

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

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

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

1回答

1932閲覧

VisualStudioのイミディエイトウィンドウでラムダ式が実行できない

concern12

総合スコア18

C#

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

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2021/12/29 15:14

編集2021/12/29 15:19

VisualStudio2019でイミディエイトウィンドウでラムダ式が実行できません。

調べたところ、VS2015からラムダ式が実行できるようになったらしいのですが、できませんでした。

Unity上で実行したせいか、以下のようなエラーが発生しましました。
TypeMirrorExtensions.GetMethodsInHierarchyなどを検索してもいまいちヒットせずわかりませんでした。

Enumerable.Range(0, 2).Where(i => i < 2).Count() System.NullReferenceException: オブジェクト参照がオブジェクト インスタンスに設定されていません。 場所 SyntaxTree.VisualStudio.Unity.Debugger.TypeMirrorExtensions.GetMethodsInHierarchy(TypeMirror type, String name, TypeMirror[] genericArguments, UnityValue[] arguments, Boolean strict) 場所 SyntaxTree.VisualStudio.Unity.Debugger.Evaluation.ExpressionEvaluator.VisitInvocationExpression(InvocationExpressionSyntax node) 場所 Microsoft.CodeAnalysis.CSharp.Syntax.InvocationExpressionSyntax.Accept(CSharpSyntaxVisitor visitor) 場所 SyntaxTree.VisualStudio.Unity.Debugger.UnityExpression.<>c__DisplayClass9_0.<EvaluateAsync>b__0() 場所 System.Threading.Tasks.Task`1.InnerInvoke() 場所 System.Threading.Tasks.Task.Execute()

また以下のようなコードのDo()メソッドにブレークポイントを貼って、this.Do(()=>UnityEngine.Debug.Log("a"))実行するとサポートされていないノードと表示されてしまいます。

cs

1using System; 2using System.Linq; 3using UnityEngine; 4 5public class Hoge 6{ 7 public void Do(Action a) 8 { 9 a.Invoke(); 10 } 11} 12

↓イミディエイトウィンドウでの表示

this.Do(()=>UnityEngine.Debug.Log("a")) サポートされていないノード: `()=>UnityEngine.Debug.Log("a")

Unity以外でのProjectでVisualStudio2019を使用するとラムダ式が実行できたので、Unity側の問題かと思うのですが、推測でも構わないので原因を教えていただきたいです。
よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

Unity から Visual Studio を起動した場合は、コードエディタ/デバッガとして使っているだけなので、いろんな機能が使えません。例えば参照設定とかは(表示したり設定できるものの)機能していません。イミディエイトもサポートしてないんじゃないかと思います。

投稿2022/03/02 04:04

bboydaisuke

総合スコア5277

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

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

concern12

2022/03/09 14:06

そのようですね・・・ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問