問題タブ [nameof]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
425 参照

c# - VB.Net C# nameof の使用法に相当するもの

nameof次の C# の使用法に相当する VB.Net はありますか。

注: MyClass はジェネリック クラスでありMyPropertyprivate.

プロパティを使用して、非ジェネリック クラスの次のコードのみを作成できFriendます。そうしないと、コンパイラが文句を言いMyClass.MyProperty is not accessable in this context because it is 'Private'ます。

0 投票する
3 に答える
226 参照

c# - パラメータとして渡された変数の元の名前を取得する

明確にするために、これはこの質問の複製ではありません。明らかに、演算子を使用して変数またはパラメーターの名前を取得できます。そんなこと知ってる。しかし、メソッドに渡された変数の元の名前を取得する方法はありますか? 現在、私はこのようにする必要があります:nameof

そして、私はそれを次のように呼びます:

しかし、変数の名前を繰り返し提供することを避け、代わりに次のようなものを使用する方法を探しています。

この場合Foo、 は次のようになります。

このようなことは .NET で実現できますか?


アップデート:

他の人がコメントで示唆しているように、渡されるものがFoo変数ではなく式である可能性については考えていませんでした。今考えてみると、常に変数が存在することを (どういうわけか) 保証できない限り、何を達成することはできないように思われますか? ロングショットのように聞こえますが、TBH には解決策があるかもしれません。

更新 #2:

人々は、私が実際に達成しようとしていることについて尋ねました。上記の最初の方法と非常に似ていますが、実際に私が使用している方法は次のとおりです。

そして、私はそれを次のようなものに使用しています:

しかし、変数の名前を繰り返し提供することを避ける方法を探しています。

0 投票する
2 に答える
102 参照

visual-studio-2015 - IronRuby が「nameof」演算子を使用する C# プロジェクトのコンパイルに失敗する

多くのソリューションを含む大規模な WPF アプリケーションがあり、各ソリューションには多くのプロジェクトがあります。IronRuby (v1.0.4) スクリプトを使用して、すべてのプロジェクトを順番にコンパイルします。

問題の説明:
IronRuby スクリプトは、「nameof」演算子を使用するプロジェクトのコンパイルに失敗し、次のエラーが表示されます。

  • Visual Studio 2017 および 2019 を搭載したマシンでエラーが発生します。
  • Visual Studio 2015 を搭載したマシンで正常に動作します。
  • VS 20XX でプロジェクトを個別にコンパイルすると、プロジェクトは正しくコンパイルされますが、IR スクリプトを使用する目的が無効になります。

どこでも検索しましたが、Visual Studio の上位バージョンで機能しない理由が見つかりませんでした。

ソフトウェア スタック:
1. IronRuby バージョン: 1.0.4
2. ネット バージョン: 4.5.2 以降
3. 動作する VS バージョン: 2015 update 3
3.(a) MSBuild ツール バージョン: 14.0

C:\Program Files (x86)\MSBuild\14.0\Bin>MSBuild.exe -version Microsoft (R) Build Engine バージョン 14.0.27522.0 Copyright (C) Microsoft Corporation. 全著作権所有。

14.0.27522.0

3.(b) コマンド プロンプトからプロジェクトをコンパイルする際のメッセージ:

  1. 非稼働 VS バージョン: 2019 (v16.2.3)
    4.(a) MSBuild ツール バージョン: 16.0

C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin>MSBuild.exe -version Microsoft (R) Build Engine バージョン 16.2.37902+b5aaefc9f for .NET Framework Copyright (C) Microsoft Corporation . 全著作権所有。

16.2.37902.0

4.(b) コマンド プロンプトからプロジェクトをコンパイルする際のメッセージ:

Microsoft (R) Build Engine バージョン 4.7.3190.0
[Microsoft .NET Framework、バージョン 4.0.30319.42000] Copyright (C) Microsoft
Corporation. 全著作権所有。

  1. 両方のマシンの MSBuild バージョンでは、同じ結果が得られます。

3(a)、3(b) を 4(a)、4(b) と比較すると、より高い VS バージョンの wrt ビルド エンジンに切断があるように見えますが、実行を妨げている問題を解決できません。より高いVSバージョンに。

どんな助けでも大歓迎です。

ありがとう、
RDV