問題タブ [identifier]

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 投票する
3 に答える
226 参照

c# - フィールドを識別する「エレガントな」方法は?

私は、プログラマー アプリケーションの根底にあり、特定のデータへのアクセスを検出する必要があるシステムを作成しています。私はほとんどの場合、次のようにプロパティを使用してこれを行うことができます。

次に、アクセスを適切に処理できるようにアクセサーgetとアクセサーを微調整します。setただし、これには、ユーザー (アプリケーション プログラマー) がすべてのデータをプロパティとして定義する必要があります。

ユーザーが (プロパティではなく) 「通常の」フィールドを持つ既存のクラスを使用したい場合、それらのアクセスを検出できません。例:

へのアクセスを検出できませんy。ただし、既存のクラスの使用を許可したいと考えています。妥協点として、そのようなデータへのアクセスが発生するたびに、ユーザーは私に通知する責任があります。例えば:

そんな感じ。信じてください、私はこれを非常に徹底的に調査しましたが、アクセスを検出するためにバイトコードを直接分析することでさえ、間接的な可能性などのために信頼できません.私は本当にユーザーに私に通知してもらう必要があります.

そして今、私の質問: これらの通知を実行するための「エレガントな」方法をお勧めできますか? (はい、私はこの状況全体がそもそも「エレガント」ではないことを知っています;私はそれを悪化させないようにしています;))。どのようにしますか?

実際の状況は次のようなものであるため、これは私にとって問題です:私は次のクラスを持っています:

ユーザーがこれを行いたい場合:

代わりに、次のようにする必要があります。

WhereWriteは のクローンを返します。これは、とにかくアクセサに実行してnotSoNiceほしかったことです。setただし、文字列を使用するのはかなり醜いです。後でフィールドをリファクタリングする場合、Write("notSoNice")アクセスを調べて文字列を変更する必要があります。

どのようにフィールドを識別できますか? 文字列、整数、列挙型 (つまり、整数) しか考えられません。しかし:

  • 文字列の問題についてはすでに説明しました。
  • イントは苦痛です。ユーザーはどの int がどのフィールドに対応するかを覚えておく必要があるため、さらに悪いことになります。リファクタリングも同様に困難です。
  • 列挙型 ( や などNOT_SO_NICEZつまり のフィールドSemiNiceClass) はリファクタリングを容易にしますが、ユーザーはクラスごとに列挙型 (SemiNiceClassなど) を、クラスのフィールドごとに値を記述する必要があります。気に障る。彼らに嫌われたくないです;)

では、なぜ私たちはこれを行うことができないのでしょうか?

どのフィールドがアクセスされているかを知る必要がありsemiNice.notSoNice、フィールドを識別しないためです。フィールド自体ではなく、フィールドの値です。

はぁ。私はこれが醜いことを知っています。私を信じてください ;)

提案をいただければ幸いです。

前もって感謝します!

(また、この質問に対する適切なタグが思いつきませんでした。より良いアイデアがあればお知らせください。編集します)


編集 #1: Hightechrider の提案: 式。

Write(x =>semiNice.y, 0)質問のために書いたクラス ( など) に基づいているSemiNiceClassのか、それとも単なる例なのかはわかりませんが、前者の場合は構造と一致しません: にyフィールドがありませんSemiNiceClass。ということWrite(x =>semiNice.notSoNice.y, 0)ですか?

これをどのように使用するつもりなのかわかりません...私が書いたコードを投稿します:

でその情報を取得するにはどうすればよいWriteですか? からその情報を抽出する方法が見つかりませんFunc<,>。また、何にも使用していないのに、なぜsemiNice.Write(x => semiNice.notSoNice.y, 50);の代わりに書くのですか?semiNice.Write(() => semiNice.notSoNice.y, 50);x

ありがとう。


編集 #2: Hans Passant の提案: フィールドをプロパティに置き換えます。

これは私が最初に意図したことですが、再コンパイルはオプションではありません。


編集 #3 : Ben Hoffstein の提案: 動的プロキシ。リンフー。

私はすでにこれを長く懸命に調べてきましたが、比較的複雑な理由で使用できません。説明するには長くなりすぎますが、安心してください。それは私の現在のソリューションよりもはるかにきれいです。

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

xml - アンダースコアを含むノードを使用したXMLの解析

アンダースコアが存在するノードを含むXMLドキュメントを解析するにはどうすればよいですか?

私はこれを試しました:

しかし、それはうまくいかないようです。XMLもサードパーティのものであるため、変更できません。どんな助けでも素晴らしいでしょう。前もって感謝します!

0 投票する
7 に答える
4468 参照

java - Java識別子としてUnicodeシンボルを使用するのは良い考えですか?

次のようなコードスニペットがあります。

Java識別子でUnicode文字を使用するのはどれほど悪い考えですか?それともこれは完全に受け入れられますか?

0 投票する
7 に答える
562 参照

jquery - 対応する CSS ルールなしで CLASS 属性を使用するのは不適切な形式ですか?

たとえば、jQuery を使用して特定のクラスを持ついくつかの要素を選択したい場合、その理由だけで、それらのクラスが css で定義されるべきであることが常に期待されますか?

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

c++ - C++ conversion from string to object identifier

I'm writing a program in C++ that reads in some data from an external file in order to set the values of static variables.

Is it possible to convert a string to an object identifier? (e.g. convert the string "CheckBox::Unchecked" into an identifier for the object CheckBox::unchecked)

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

php - 一貫した ID (メッセージ ID) を使用して imap から特定のメッセージを取得する方法

電子メール メッセージのリンク追跡を維持する必要があります。PHPとIMAPを使用しています。時間の経過とともにメールを識別する ID が必要です。expunge() の後に UID が変更されるため、IMAP UID を使用しても機能しないようです。メールには message_id があることはわかっていますが、PHP と IMAP で message_id を使用してメールを取得するにはどうすればよいですか?

使用できる別の識別子はありますか?

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

java - 識別子に # を使用できないのはなぜですか?

Java では、識別子を $ (ドル記号) で開始するか、または含むことができます。例 int a$b;

しかし、# を識別子に使用できないのはなぜですか? 具体的な理由は?# は Java の演算子か何かですか? 例 int a#b;

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

php - 追加しない場合、チェック名は一意です

私のアプリケーションでは、ユーザーが会社名を入力する必要があります。この名前は、URLで使用される一意の識別子に自動的に作成されます。

「Bob'sCafe」は「bobs-cafe」になります

ただし、名前が重複している場合は、アプリケーションに番号を追加してほしいので、すでに「bobs-cafe」がある場合は「bobs-cafe-1」を使用し、同様に「bobs-cafe-1」がすでにある場合は使用します。 「bobs-cafe-2」を使用します

explodeを使用し、正規表現も調べましたが、これにアプローチする最善の方法がわかりません。

数字を取得してインクリメントし、文字列を返すことができることに固執しています

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

apache-flex - 総称識別子

問題を適切な言葉で説明していない可能性があるため、Google で回答を得ることができませんでした。すみません!

次のコードでは、「ハードコードされた」識別子 COMMENT を変数 editField に置き換えたいと思います。どうやってするか?

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

sql - データベース名に数字を含めると、データベースを作成するための SQL Server クエリでエラーが発生する

Microsoft SQL Server 2005で単純な SQL クエリを実行してデータベースを作成する際に問題が発生しましたが、その理由がわかりません。

このクエリを実行すると

このエラーが表示されます

「4444」付近の構文が正しくありません。

名前に数値を含むデータベース テーブルを作成する場合、特に指定しなければならないことはありますか? それとも私は何かを忘れていますか?