問題タブ [namespaces]

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

c# - App_Code フォルダー内のサブフォルダー内のクラスが正しく検出されないのはなぜですか?

App_Code フォルダーのサブフォルダーにクラス ファイルを配置すると、次のエラーが発生します。

errorCS0246: 型または名前空間名 'MyClassName' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)

このクラスは名前空間にはまったくありません。何か案は?

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

.net - .NETの「global::System」と「System」の違いは何ですか?

VS2005プロジェクトをVS2008にアップグレードし、変更を検討していました。.Designer.csファイルの1つが大幅に変更されていることに気づきました。変更の大部分は、 Systemglobal::Systemに置き換えるだけでした。例えば、

なりました

何が起きてる?

0 投票する
10 に答える
11595 参照

java - ドメインが関連付けられていない場合、パッケージにどのように名前を付ける必要がありますか?

したがって、パッケージについて話すときのほとんどのJavaリソースは、com.yourcompany.projectセットアップについて言及しています。しかし、私は会社で働いておらず、ウェブサイトも持っていません。一般的な命名規則はありますか?たぶんメールアドレス?

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

c++ - 名前空間を「使用解除」するにはどうすればよいですか?

私の開発システム (Codegear C++Builder) の気まぐれの 1 つは、自動生成されたヘッダーの一部が、.

...それらのステートメントは、私が最も望んでいない、または期待していないときにコードに影響を与えます。

これを回避するために、以前の「using」ステートメントをキャンセル/オーバーライドする方法はありますか。

多分...

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

c++ - C++ での名前空間と演算子のオーバーロード

特定の名前空間でライブラリを作成する場合、その名前空間のクラスにオーバーロードされた演算子を提供すると便利なことがよくあります。(少なくとも g++ では) オーバーロードされた演算子は、ライブラリの名前空間のいずれかに実装できるようです。

またはグローバル名前空間

私のテストでは、どちらも正常に動作しているようです。これら 2 つのオプションに実際的な違いはありますか? どちらのアプローチが良いですか?

0 投票する
4 に答える
3244 参照

c# - 同じクラス、異なる名前空間、単純化する方法は?

私は、2つの名前空間でほぼ重複したコードを提供するWebサービスを使用しています。たとえば、PigFeetとHorseFeetの場合、両方の名前空間にFeetクラスが含まれ、Feetクラスで機能する他のコードでは、同じ名前空間の一部である必要があります。

今のところ、私のコードでは、次のようなことを強いられています。

これにより、重複したコードがたくさん残っています。名前空間をより動的に選択する方法はありますか?

0 投票する
13 に答える
41921 参照

objective-c - Objective-C の名前空間の競合を解決する最善の方法は何ですか?

Objective-C には名前空間がありません。C によく似ており、すべてが 1 つのグローバル名前空間内にあります。一般的な慣行は、クラスに頭文字を付けることです。たとえば、IBM で働いている場合は、頭に「IBM」を付けることができます。Microsoft で働いている場合は、「MS」を使用できます。等々。イニシャルがプロジェクトを指す場合もあります。たとえば、Adium はクラスの前に「AI」を付けます (その背後にイニシャルを使用できる会社がないため)。Apple はクラスに NS という接頭辞を付け、この接頭辞は Apple 専用に予約されていると述べています。

ここまでは順調。しかし、クラス名の先頭に 2 ~ 4 文字を追加することは、非常に限られた名前空間です。たとえば、MS または AI はまったく異なる意味を持つ可能性があり (たとえば、AI は人工知能である可能性があります)、他の開発者がそれらを使用して同じ名前のクラスを作成することを決定する場合があります。Bang、名前空間の衝突。

これが自分のクラスの 1 つと、使用している外部フレームワークの 1 つとの間の衝突である場合は、クラスの名前を簡単に変更できます。大したことではありません。しかし、2 つの外部フレームワークを使用していて、どちらのフレームワークもソースがなく、変更できない場合はどうなるでしょうか? アプリケーションがそれらの両方とリンクすると、名前の競合が発生します。これらを解決するにはどうすればよいでしょうか?両方のクラスを引き続き使用できるように、それらを回避する最善の方法は何ですか?

C では、ライブラリに直接リンクしないことでこれらを回避できます。代わりに、dlopen() を使用して実行時にライブラリをロードし、dlsym() を使用して探しているシンボルを見つけ、それをグローバル シンボルに割り当てます (任意の方法で名前を付けることができます)、このグローバル シンボルを介してアクセスします。たとえば、一部の C ライブラリに open() という名前の関数があるために競合が発生した場合、myOpen という名前の変数を定義して、ライブラリの open() 関数を指すようにすることができます。 、open() を使用するだけで、もう一方を使用する場合は、myOpen 識別子を介してアクセスします。

Objective-Cで同様のことが可能ですか?そうでない場合、名前空間の競合を解決するために使用できる巧妙でトリッキーなソリューションは他にありますか? 何か案は?


アップデート:

これを明確にするために、名前空間の衝突を事前に回避する方法や、より良い名前空間を作成する方法を提案する回答は大歓迎です。ただし、私の問題を解決しないため、回答として受け入れません。2 つのライブラリがあり、それらのクラス名が衝突しています。それらを変更することはできません。どちらのソースも持っていません。衝突はすでに発生しており、事前に回避できた方法に関するヒントはもはや役に立ちません。それらをこれらのフレームワークの開発者に転送し、彼らが将来より良い名前空間を選択することを願っていますが、当分の間、単一のアプリケーション内で現在フレームワークを操作するソリューションを探しています. これを可能にする解決策はありますか?

0 投票する
5 に答える
144862 参照

web-services - tempuri.orgとは?

tempuri.org が存在する理由 各 XML Web サービスが、Web 上の他のサービスとは異なる独自の名前空間を必要とするのはなぜですか?

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

html - Linq から XML へのクエリを実行するときに、任意の名前空間をどのように処理しますか?

私は、特に醜い「ライブ」HTML を取り込んで、HTML Agility Pack を使用して正式な XML DOM に強制するプロジェクトを持っています。私ができるようにしたいのは、Linq to XML でこれをクエリして、必要なビットをかき出すことです。ここで説明する方法を使用して HtmlDocument を XDocument に解析していますが、これに対してクエリを実行しようとすると、名前空間を処理する方法がわかりません。ある特定のドキュメントでは、元の HTML は実際には次のタグを含む適切にフォーマットされていない XHTML でした。

このドキュメントからクエリを実行しようとすると、名前空間属性が次のようなことを妨げているようです:

どうやらこれらの「div」タグの場合、LocalName のみが「div」ですが、適切なタグ名は名前空間と「div」です。XML 名前空間の問題についていくつか調査を試みましたが、次の方法でクエリを実行することで名前空間をバイパスできるようです。

ただし、これはかなりハックなソリューションのように見え、名前空間の問題に適切に対処していません。私が理解しているように、適切な XML ドキュメントには複数の名前空間を含めることができるため、それを処理する適切な方法は、クエリを実行している名前空間を解析することです。他の誰かがこれをしなければならなかったことがありますか?私はそれを複雑にしていますか?HtmlDocumentに固執し、XPathでクエリを実行するだけで、これらすべてを回避できることはわかっていますが、可能であれば、私が知っていること(Linq)に固執し、さらに名前空間を設定していないことも知りたいです-今後の関連する問題。

この状況で名前空間を処理する適切な方法は何ですか?

0 投票する
9 に答える
9887 参照

java - Javaでパッケージの命名に逆ドメインを本当に使用していますか?

ずっと前から、Java では、パッケージの命名のために所有するドメインを逆にするのはばかげていて扱いにくいと思っていました。

プロジェクトでパッケージの命名に使用するものはどれですか?