問題タブ [static-classes]

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

c# - 事前定義された文字列のC#静的クラスと構造体

同僚がC#で次の構造を作成しました(サンプルコードは簡略化されています)。彼の目標は、コードの残りの部分で事前定義されたすべての文字列の表記を短くすることでした。

彼にとってはうまくいくように見えますが、彼が構造体の代わりに静的クラスを使用すべきだったのか、それともこれを実現するためのよりエレガントな方法があるのか​​疑問に思うのは止められません。

これを行うための好ましい方法は何でしょうか?その理由も説明してください。

0 投票する
6 に答える
3658 参照

c# - なぜ静的クラスが使用されるのですか?

静的クラスと静的メソッドに疑問があります。MSDN から、「静的クラスとクラス メンバーを使用して、クラスのインスタンスを作成せずにアクセスできるデータと関数を作成する」ことがわかりました。

したがって、クラスをインスタンスに関連付けたくない場合は、それを静的にします。それが唯一の利点ですか?静的クラスのリアルタイム シナリオを教えてくれる人はいますか。

クラス(静的ではない)でしばらく、静的メソッドを見つけています。静的メソッドが実際にインスタンスメソッドよりも優れている/パフォーマンス上の利点は何ですか?

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

asp.net-mvc - 静的クラスとしてのアプリケーションサービスレイヤー

ASP.NET MVCアプリケーションには、すべてのビジネスロジック/サービスレイヤーを含むプロジェクトがあります。このプロジェクトは、別のプロジェクトにある私のデータベース(エンティティフレームワーク)と相互作用します。

サービスレイヤーに簡単にアクセスできるようにしたかったので、簡単に参照できるように静的クラスを作成しました。たとえば、コントローラーを使用していて、新しいアカウントを作成する必要がある場合:

次に、サービスレイヤーは必要なすべてのロジックを実行し、のリポジトリを介してユーザーを作成しますDatabaseLayer

サービスレイヤーのどこでも次のことをしたくなかったからです。

代わりに、リポジトリのラッパークラスを作成したので、他のすべてのリポジトリを使用するには、一度だけインスタンス化する必要があります。

これは、サービス層の静的クラスで使用されました。

すべてのサービスレイヤークラスが静的であり、Reposフィールドも静的であるため、私が遭遇し続ける明らかな問題は、同じオブジェクトが複数のデータコンテキストから取得され、更新/削除の奇妙な動作を引き起こすことです。

ServiceLayer.Accounts.Method()アプリケーションのライフサイクルが続くので、静的メンバー/クラスを使用する場合はこれが予想されることを理解していますが、非静的クラスを作成せずにサービスレイヤーを使用できる方法はありますか?使用するすべての場所でインスタンス化する必要があり、複数のデータコンテキストインスタンスが原因でCRUDの問題が発生しないようにする必要がありますか?

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

c# - 静的クラスの拡張メソッドを作成できないのはなぜですか?

Fileクラスの拡張メソッドを作成しようとすると、クラスが静的であるため、これを実行できないというエラーが表示されます。しかし、なぜこれが拡張メソッドの作成を停止するのかわかりません。どのような意味がありますか?

ありがとう

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

c# - C#-どちらがより効率的でスレッドセーフですか?静的クラスまたはインスタントクラス?

次の2つのシナリオを検討してください。

シナリオ1:静的ヘルパークラスを使用する。

シナリオ2:インスタンスクラスを使用する。

[ブローカー]シナリオのどれが、約100の異なる役割と1,000を超えるユーザーを持つWeb環境で使用された場合に最適に拡張されます。

注:別のアプローチを自由に提案してください。

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

c# - 共有データに asp.net/c# で静的クラスを使用できますか?

私が抱えている状況は次のとおりです。私は、学校のグループが使用するオンライン システムを構築しています。一度にシステムにログインできるのは 1 つの学校だけであり、その学校から約 13 人のユーザーを取得できます。次に、教育アプリケーションに進み、タスクを完了するために協力する必要があり、コードの観点から、いたるところで変数を共有する必要があります。

共有する必要がある変数を保持する静的プロパティを持つ静的クラスを設定すると、静的変数がすべてである限り、データベース内/データベースから変数を保存/アクセスする必要がなくなる可能性があると考えていました。アプリケーションの起動時に適切に初期化され、最後にクリーンアップされます。もちろん、変数をスレッド セーフにするために、get メソッドと set メソッドにもロックを設定する必要があります。

心の奥底で、これはひどいやり方かもしれないと言っているのですが、正確な理由はわかりません。そのため、この状況で静的クラスを使用することに賛成または反対の考えを人々に教えてもらえれば、私はかなりありがたいでしょう。

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

php - get_called_class ハックが eval-code で機能しない

ge_called_classPHP バージョン 5.2 で遅延静的バインディングを許可するためにハックを使用しています (ここにあります)。

私のコードには次のものがあります。

これは、何らかの理由でphp 5.2では機能しないため、次のようにしました。

一方、これは関数ではget_called_class機能しません。file関数がコードの評価されたセクションを読み取れないというエラーが表示されます。

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

java - Android が静的クラスを好む理由

Android が開発者に静的内部クラスを使用させることを好む多くの Java コードを目にします。特に、カスタム ListAdapter のViewHolderパターンのようなパターンの場合。

静的クラスと非静的クラスの違いがわかりません。私はそれについて読んだことがありますが、パフォーマンスやメモリフットプリントに関心がある場合は意味がないようです.

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

c# - 最初に初期化する静的クラスは?

プロジェクトに静的クラスがもう 1 つある場合、どの静的クラスが最初に初期化されますか?

例: 以下のコードでは、null 例外が発生します。

注意を払うと、Firstクラスがそれ自体を初期化すると、secondArrayフィールドSecondが null になることがわかります。ただし、Secondクラスが最初に初期化される場合、SecondクラスはfirstArraynull になります。どの初期化が最初に異なる結果になるかを伝えようとしています。

私のプロジェクトに関する抽象的な質問だと思います。予期しない結果が得られる理由を理解しようとしているときに、これに遭遇します。

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

oop - 静的クラスとメソッドをいつ使用するのですか?

一般的な質問があります...静的クラスまたは静的メソッドをいつ使用する必要がありますか?..静的メソッドはインスタンス化せずに呼び出すことができるという考えを知っています...そして静的クラスは静的メソッドにのみ使用する必要がありますか?...しかし、パフォーマンスに関する懸念もありますか...そして、インスタンスメソッドやクラスよりもいつそれらを優先する必要がありますか?