C#の匿名クラスの中について質問です。
以下のコードはコンパイルエラーになりますが、匿名クラスでは、比較演算子は使えないのでしょうか。
もし、使えるようでしたら、使い方をご教示いただけますと幸いです。
最終目標地点として、ラムダ式で使用する匿名クラスで、比較演算子で値の比較ができないか検討しております。
(可能でしたら、ラムダ式で使用する匿名クラス内での、比較演算子を使った例もいただけると大変助かります)
※追記
エラーメッセージ:
・CS0103 現在のコンテキストに 'num1' という名前は存在しません
・CS0103 現在のコンテキストに 'num2' という名前は存在しません
C#
1 var v = new { 2 num1 = 1, 3 num2 = 2, 4 test = (num1 > num2); // コンパイルエラー 5 };
エラーが出たなら、エラーメッセージを提示しましょう
エラーメッセージは、いらぬ翻訳省略しないで、出たそのママをコピペで提示してください
ご指摘いただき、ありがとうございます。
追記として、エラーメッセージをコピペしました。
匿名じゃなくてもこんなことはできません。
test が初期化されるときにはまだ num1 と num2 がないので。
>Zuishinさん
右辺が実行されるときに、num1とnum2、testが同時に宣言、初期化されるイメージでしょうか。
以下のようなコードでは、コンパイルがうまくいきましたので、上記のイメージになりました。
int num1 = 1;
int num2 = 2;
var v = new {
test = num1 > num2
};
おおむねその通りです。
ありがとうございます。初歩的なことでした・・。納得しました。
解決できたのであれば、検索でたどり着いた他の人の参考になる回答をつけてそれをベストアンサーに選んでください。
回答1件
あなたの回答
tips
プレビュー