問題タブ [automatic-properties]
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.
c# - 自動実装されたC#プロパティのVisual Studioテキストエディターの「メンバー」ドロップダウンアイコン?
Visual Studio 2008 SP1(スタンドアロンまたはReSharper 4.5を使用)のクラスのフィールド(および自動プロパティ)を簡単に一覧表示または視覚化する方法(おそらくアドインを介して)はありますか?
Visual Studio 2008のC#コードテキストエディターのナビゲーションバーにある[メンバー]ドロップダウンの青いボックス/ダイヤモンドアイコンで識別されるクラスのフィールドを確認することに慣れてい ます。クラスが「所有」している状態を確認すると便利です。フィールドと、クラスのインスタンスのおおよそのサイズ。
自動的に実装されたプロパティには、それらを裏付ける匿名フィールドがありますが、メンバーのドロップダウンに、背後にストレージがあることを示す個別のアイコンはありません。
c# - 所有者クラス内でのプロパティとバッキングフィールドの使用
私はC#で自動実装されたプロパティが大好きですが、最近、この象が私のキュービクルに立っていて、彼をどうするかわかりません。
自動実装されたプロパティ(以下「aip」)を使用すると、内部で使用するプライベートバッキングフィールドがなくなります。aipには副作用がないため、これは問題ありません。しかし、後でgetまたはsetに追加の処理を追加する必要がある場合はどうなりますか?
次に、ゲッターとセッターを拡張できるように、バッキングフィールドを作成する必要があります。クラスを使用する外部コードでは、違いに気付かないため、これは問題ありません。しかし、現在、aipへのすべての内部参照は、プロパティにアクセスするときにこれらの副作用を引き起こします。ここで、バッキングフィールドを使用するには、onceaipへのすべての内部アクセスをリファクタリングする必要があります。
だから私の質問は、あなたのほとんどは何をしているのですか?自動実装されたプロパティを使用しますか、それとも常にバッキングフィールドを使用しますか?副作用のあるプロパティについてどう思いますか?
c# - C#の自動プロパティがVB 2010のようなデフォルト値をサポートしないのはなぜですか?
VB 2010の新機能を見て、自動実装プロパティのサポートに出くわしました。
私はC#を使用しているので、これは非常に馴染みがあるように見えましたが、VBがC#に必要な機能を追加していることに気付きました。自動実装プロパティに任意のデフォルト値を設定します。
私はC#での自動プロパティのクリーンな使用法が本当に好きです。これにより、デフォルト値が必要になるたびにバッキングフィールドを導入してプロパティに接続する手間が省け、コードが不必要に乱雑になります。
なぜこれがC#でも導入されなかったのか疑問に思いましたか?これを行わない理由は何でしょうか?構文の議論が進行中ですか、それともこれを実装するのに技術的な制限がありますか?
visual-studio-2008 - 自動プロパティ セッターにブレークポイントを設定できませんか? なんで?
どうやら VS 2008 では、自動プロパティのセッターだけにブレークポイントを設定することはできません。
つまり、次のような自動プロパティを定義した場合:
次に、セッター行にブレークポイントを設定しようとすると、自動プロパティ全体がブレークポイントの赤に変わります。
これは通常のプロパティに対しては問題なく機能しますが、自動プロパティがこの特別な (制限的な) 扱いを受ける理由は何ですか? それらは、非表示のバッキング フィールドを持つ通常のプロパティへの単なる構文糖衣以上のものですか?
c# - 変数から C# プロパティをすばやく作成する
C# の場合、変数を書き出してからすべてのプロパティを書き出すのは嫌いです。すべての変数を選択し、右クリックしてすべてのプロパティを作成する方法はありませんか。
refactoring - この .Net 1.1 サンプルをリファクタリングするときに自動プロパティを利用するにはどうすればよいですか?
以下の例のように、レガシーな .Net 1.1 スタイルのコードが多数使用されていますが、自動プロパティを使用して縮小したいと考えています。これにより、多くのクラスが 30 ~ 40% 縮小されます。これは良いことだと思います。
これは次のようになります。
唯一の問題は、どこに設定すればよいかということMyIntThingy = -1;
です。
クラスを最初から書いていれば、より良いアイデアが得られたでしょうが、そうではありませんでした。明白な答えは次のとおりです。コンストラクターに入れます。問題は、このクラスには多くのコンストラクターがあることです。デバッガーでの初期化を-1
見ると、コンストラクターが呼び出される前に発生することがわかります (私は信じています)。ここで説明されているように、静的コンストラクターを使用する必要があるかのよう
です
。Java の静的イニシャライザが思い浮かびますが、やはり、私の変数は静的ではありません。http://www.glenmccl.com/tip_003.htm
このクラスに機能的な変更ではなくスタイル上の変更を加えたいと考えています。くだらないものですが、数年間テストされ、機能しています。機能を壊すのは悪いことです。だから...私は、より短く、より甘く、よりキュートでありながら同等のコードを探しています。ご不明な点がございましたら、お知らせください。
c# - C#では、属性を使用して自動プロパティに追加の作業を実行させることはできますか?
この質問は関連していますが、これと同じではありません。C#Auto-Propertyにデフォルト値を与えるにはどうすればよいですか?
私は自動プロパティが大好きですが、時々次のようなことをしなければなりません:
同じことを何度もやらなければならないのなら、コードの行や文字をそれほど多く入力する必要がないことを望み始めます。値をインターセプトして、次のように変更できるようにしたいと思います。
このようなことをする方法はありますか?それは愚かでしょうか?もっと良い方法はありますか?他の一般的なコメントはありますか?確かに、私が示した例は少し架空のものであり、これを考えさせられた正確なコードを今は見つけることができません。
ありがとう。
c# - MonoTouch-フィールドと自動プロパティ
自動プロパティの代わりにフィールドを使用すると、パフォーマンスに顕著な違いがありますか?たとえば、それぞれ5つのプロパティを持つ1000個のJSONオブジェクトの配列を逆シリアル化する場合はどうなりますか?
私のiPhoneドメインモデルは基本的に、私のWebアプリがjavascriptへのシリアル化に使用するDTOのコピーです。それらはすべて、習慣ごとに自動プロパティを使用します。しかし、MonoTouchでそれらを使用してCPUサイクルを浪費しているのではないかと心配しています。
c# - クラスのプロパティを適切に定義するにはどうすればよいですか?
プロジェクト内で新しいクラスを定義する場合、そのための正しい/ベストプラクティスは何ですか?過去に私は次のようなクラスを作成しました:
通常、プロジェクト内でコレクションを作成するには、このようなクラスを使用します。
ただし、c#シャープについて学び、読み続けると、クラスが次のように定義されている例が表示されます。
最初のアプローチは定義が正しくありませんか、それともこれはC#内で受け入れられている省略形ですか?ベストプラクティスとして、常に最初にプライベートフィールドでクラスを定義し、次にget / set to a valueを使用してそれらをプロパティとして定義する必要がありますか?
私はC#で独学で学んでおり、開発への適切なアプローチを改善し、よりよく理解しようとしているので、質問します。そこにあるいくつかのサンプルとチュートリアルは、1つのアプローチが好まれる理由(または完了)他の上に。
前もって感謝します