タグ付けされた質問 「properties」

プロパティは、一部のオブジェクト指向プログラミング言語では、フィールド(またはデータメンバー)とメソッドの中間にある特別な種類のクラスメンバーです。プロパティはフィールドのように読み書きされますが、プロパティの読み書きは(通常)メソッド呼び出しを取得および設定するために変換されます。

13
プロパティの名前を文字列として取得します
(私が受け入れた答えを使用して作成した以下のソリューションを参照してください) リフレクションを含むいくつかのコードの保守性を改善しようとしています。アプリには、公開されたリモートインターフェイスに含まれていないアプリの部分にアクセスするためのExecuteというメソッドを公開する.NET Remotingインターフェイスがあります。 ここでは、アプリケーションが実行を介してアクセスできるようになっているプロパティ(この例では静的プロパティ)を指定する方法を示します。 RemoteMgr.ExposeProperty("SomeSecret", typeof(SomeClass), "SomeProperty"); したがって、リモートユーザーは次のように呼び出すことができます。 string response = remoteObject.Execute("SomeSecret"); アプリはリフレクションを使用してSomeClass.SomePropertyを検索し、その値を文字列として返します。 残念ながら、誰かがSomePropertyの名前を変更して、ExposeProperty()の3番目のパラメーターを変更するのを忘れると、このメカニズムが壊れます。 私は同等のものを必要としています: SomeClass.SomeProperty.GetTheNameOfThisPropertyAsAString() ExposePropertyの3番目のパラメーターとして使用するため、リファクタリングツールが名前の変更を処理します。 これを行う方法はありますか?前もって感謝します。 さて、これが私が作成したものです(私が選択した答えと彼が参照した質問に基づいて): // <summary> // Get the name of a static or instance property from a property access lambda. // </summary> // <typeparam name="T">Type of the property</typeparam> // <param name="propertyLambda">lambda expression of the …

11
プロパティのゲッターとセッター
この単純なクラスでは、コンパイラの警告が表示されます x独自のセッター/ゲッター内で変更/アクセスを試みる そして私がこのようにそれを使うとき: var p: point = Point() p.x = 12 EXC_BAD_ACCESSを取得します。明示的なバッキングivarなしでこれを行うにはどうすればよいですか? class Point { var x: Int { set { x = newValue * 2 //Error } get { return x / 2 //Error } } // ... }

4
JavaScriptでオブジェクトプロパティをチェックするための「not in」演算子はありますか?
JavaScriptに、オブジェクトにプロパティが存在しないかどうかを確認するための「not in」演算子はありますか?GoogleやStack Overflowの周りではこれについて何も見つかりませんでした。この種の機能が必要な場所で私が取り組んでいるコードの小さなスニペットは次のとおりです。 var tutorTimes = {}; $(checked).each(function(idx){ id = $(this).attr('class'); if(id in tutorTimes){} else{ //Rest of my logic will go here } }); ご覧のとおり、すべてをelseステートメントに入れています。その部分を使用するためだけにif– elseステートメントを設定するのは私には間違っているようですelse。

13
オブジェクトのプロパティ名を取得する
JavaScriptにそのようなオブジェクトをループ処理する方法があるかどうか疑問に思っていました。 for(var i in myObject) { // ... } しかし、このように各プロパティの名前を取得します。 for(var i in myObject) { separateObj[myObject[i].name] = myObject[i]; } Googleでそのようなものを見つけることができないようです。彼らは変数の名前を一緒に渡すと言っていますが、これは私が達成しようとしていることのオプションではありません。 あなたが提供できるあらゆる助けをありがとう。

5
Linqを使用してオブジェクトのリストからプロパティの一意のリストを取得するにはどうすればよいですか?
Linqを使用して、IDがプロパティであるオブジェクトのリストを指定してIDのリストを返そうとしています。各オブジェクトをループして、見つけた一意のIDを引き出すことなく、これを実行できるようにしたいと思います。 MyClassタイプのオブジェクトのリストがあり、このクラスのプロパティの1つはIDです。 public class MyClass { public int ID { get; set; } } 私がしたいことは、それらのIDのリストを返すLinqクエリを作成することです idをIList<MyClass>返すような方法でそれを行うにはどうすればよいIEnumerable<int>ですか? MyClassリストの各項目をループして一意の値をリストに追加するのではなく、Linqを使用して1行または2行で実行できるはずです。 エレガントなソリューションを作成するための助けがあれば大歓迎です!
171 linq  class  list  c#-3.0  properties 


9
JavaScriptで2 == [2]になるのはなぜですか?
私は最近それ2 == [2]をJavaScript で発見しました。結局のところ、この奇妙な点にはいくつか興味深い結果があります。 var a = [0, 1, 2, 3]; a[[2]] === a[2]; // this is true 同様に、次の作品: var a = { "abc" : 1 }; a[["abc"]] === a["abc"]; // this is also true さらに奇妙なことに、これもうまくいきます: [[[[[[[2]]]]]]] == 2; // this is true too! WTF? これらの動作は、すべてのブラウザで一貫しています。 これが言語機能である理由は何ですか? この「機能」のより異常な結果は次のとおりです。 [0] == …

11
属性とプロパティの違いは何ですか?[閉まっている]
休業。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善してみませんか?詳細を追加し、この投稿を編集して問題を明確にしてください。 6年前休業。 この質問を改善する これらは同じことを意味するようです。しかし、どの用語がどのコンテキストでより適切ですか?

4
オブジェクトに特定のメソッド/プロパティがあるかどうかを確認するにはどうすればよいですか?
おそらく動的パターンを使用していますか?動的キーワードを使用して、任意のメソッド/プロパティを呼び出すことができますよね?たとえば、myDynamicObject.DoStuff()を呼び出す前にメソッドが存在するかどうかを確認する方法は?


10
サブクラスのフィールドまたはプロパティをオーバーライドする
抽象基本クラスがあり、この親クラスから継承する各クラスで異なる値を持つフィールドまたはプロパティを宣言したい。 基本クラスのメソッドで参照できるように、それを基本クラスで定義したいと思います。たとえば、ToStringをオーバーライドして、「このオブジェクトはプロパティ/フィールドタイプです」と言っています。これを行う方法は3つありますが、疑問に思っていました。これを行うための最良の方法または受け入れられている方法は何ですか。初心者の質問、申し訳ありません。 オプション1: 抽象プロパティを使用し、継承したクラスでそれをオーバーライドします。これは強制されることでメリットがあり(オーバーライドする必要があります)、クリーンです。しかし、フィールドをカプセル化するのではなく、ハードコード値を返すのは少し間違っているように感じられ、単なるコード行ではなく、数行のコードです。また、「セット」の本体を宣言する必要がありますが、それはそれほど重要ではありません(そして、私が知らないものを回避する方法がおそらくあるでしょう)。 abstract class Father { abstract public int MyInt { get; set;} } class Son : Father { public override int MyInt { get { return 1; } set { } } } オプション2 パブリックフィールド(または保護フィールド)を宣言し、継承したクラスで明示的にオーバーライドできます。以下の例では、「new」を使用するように警告が表示され、おそらくそれを実行できますが、それは間違っていると感じ、多型性を壊します。良い考えではないようです... abstract class Mother { public int MyInt = 0; } class Daughter …
145 c#  properties  field 


10
Pythonでプロパティ機能を使用する方法についての実例?
@propertyPythonでの使用方法に興味があります。私はpythonのドキュメントを読みました、そして私の意見では、そこでの例は単なるおもちゃのコードです: class C(object): def __init__(self): self._x = None @property def x(self): """I'm the 'x' property.""" return self._x @x.setter def x(self, value): self._x = value @x.deleter def x(self): del self._x _xプロパティデコレータで塗りつぶしたものをラップすることでどのようなメリットが得られるかわかりません。次のように実装しないのはなぜですか。 class C(object): def __init__(self): self.x = None プロパティ機能は、状況によっては役立つ場合があると思います。でもいつ?誰かが実際の例を教えてくれませんか? ありがとう。

16
ゲッターのみのプロパティをオーバーライドしてセッターを追加できないのはなぜですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 2年前休業。 この質問を改善する 次のC#コードが許可されないのはなぜですか。 public abstract class BaseClass { public abstract int Bar { get;} } public class ConcreteClass : BaseClass { public override int Bar { get { return 0; } set {} } } CS0546 'ConcreteClass.Bar.set': 'BaseClass.Bar'にオーバーライド可能なセットアクセサーがないため、オーバーライドできません

10
C#3.0以降のプロパティとフィールドの違い
StackаэтотвопросестьответынаStack Overflowнарусском:Длячегонужнысвойства? C#のフィールドとプロパティの違いは何ですか?しかし、私の質問には(私の観点から)若干の違いがあります: それを知ったら 「プロパティでのみ機能するテクニック」ではクラスを使用しません。 ゲッター/セッターでは検証コードを使用しません。 プロパティの設定におけるある種の制御のように、(スタイル/将来の開発のものを除いて)何か違いはありますか? 間に追加の違いはありますか: public string MyString { get; set; } そして public string myString; (最初のバージョンではC#3.0以降が必要であり、コンパイラーがプライベートフィールドを作成することを認識しています。)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.