問題タブ [base-class-library]

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

c# - BCL.XPRB dll が C#.Net アプリケーションで初期化されていません

オプティマイザ ライブラリの初期化エラーを解決しようとしています。Xpress-IVE 64 ビット スタジオのライセンスを持っていてインストールしましたが、VS2010 でビルドされ、IIS で実行される C#.Net アプリケーションで xprb 機能をリンクして使用する必要があります。

xprb.dll と xprbdn.dll を配置用のアプリケーションの bin フォルダーにコピーし、参照として追加しました。しかし、アプリケーションが XPRB.init() を呼び出すと、例外がスローされます

何が欠けている可能性があるかについて何か提案はありますか?

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

c# - .Net IO クラスを使用してテスト可能なコードを作成するには?

.Net System.IO クラスへの呼び出しを模擬するユニット テスト可能なコードを作成したいので、ファイル システムに依存するのではなく、実際にユニット テストを実行できます。SystemWrapperクラスを使用して、BCL クラスをラップしています。

ファイルが存在するかどうかを確認するための簡単な例を取得しようとしています。

私が抱えている問題は、( StructureMapを介して) 依存関係をインスタンス化するには、渡すコンストラクターパラメーターを知る必要があるため、クラスに依存関係を注入しても機能しないことです。これは、その時点では使用できず、デフォルトのコンストラクターもありません。

サンプルコード:

私が気に入らないのは、依存関係が注入されていないことです。ObjectFactory はここにあるべきではありません (ただし、これを作成する他の方法はありません)。ExplicitArguments は面倒で、argument-name はマジック ストリングです。

これを機能させるには、StructureMap構成クラスは、使用するコンストラクターを明示的に知る必要があります(StructureMapを使い始めたばかりなので、これは正しい設定方法ではない可能性があります):

System.IO クラスに対してテスト可能なコードを作成するためのより良い解決策を見つけた人はいますか? 問題の一部が System.IO クラスの設計にあることはわかっています。

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

c# - マジック ナンバーを使用しない IComparable.Compare の操作

私はIComparerを扱うのが本当に嫌いです。何年も .Net を使ってきた今でも、1 と -1 でよく混乱します。

Compare呼び出しのたびに出力整数を別のものにキャストすることなく、 Compare結果値を自明の名前に置き換えることはできますか?

次のような列挙型を定義しようとしました:

しかし、もちろん、キャストなしではコンパイルできません。

もちろん、これはIComparable.CompareToにも当てはまります。

アイデアをありがとう

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

.net - マネージ C++ 文字列比較の動作がおかしい

2 つの文字列を比較しようとしていますが、奇妙な結果が得られます。一部のコンピューターでは比較が正しく機能し、他のコンピューターでは正しく機能しません。コードはマネージド C++ を使用して Visual Studio 2010 で記述されています。文字列を確認したところ、同じように見えます。何かご意見は?

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

.net - ウィンドウ フォーム アプリケーションを使用して C++ で (.exe) ファイルを起動する方法は?

、たとえば、ユーザーが [プリセット] ボタンをクリックすると、別の (.exe) ファイルが起動されます。ブレッド ボード ボタンの場合も同様です。

これは私が使用しているコードです

ボタンはこんな感じ

しかし、それは私にエラーを与えます、このコードは

それはそれらを正しく起動しますが、私の場合は次のようになります:

Win32Exception was unhandeld システムは指定されたファイルを見つけることができません。

Cパーティションのプログラムファイルにフォルダーを配置しても、ファイルが存在することを確認しました。

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

.net - .NET 4.5 CustomReflectionContext: それは何に役立ちますか?

.NET Framework 4.5 Developer Preview の新機能に関する言及

リフレクション コンテキストをカスタマイズして、 CustomReflectionContextクラスを介してデフォルトのリフレクション動作をオーバーライドする機能。

の目的は何ReflectionContextですか? MSDN は、この件に関して明確ではありません。

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

.net - 怠惰の意味およびスレッドセーフfalse

初期化中にLazy<T>クラスとマーキングを使用することの意味は何ですか?isThreadSafe: false

レイジーがクラスコンストラクター内で初期化される静的メンバーではなくインスタンスメンバーにアクセスする必要があるシナリオでは、これisThreadSafe: false はすべての使用法で自動的に必要ですか?

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

winapi - いくつかの用語(mfc、win32、vc ++)について間違っている場合は、私を修正してください

私が理解していることから、Wikiと私が投稿したこの質問を使用して、MicrosoftにはVC ++と呼ばれる独自のコンパイラがあり、他の多くのものとともに.netフレームワークに含まれています。また、次の理由により、非常に優れたアプリケーションを作成できます(とりわけ)。

  1. BaseCLassライブラリと呼ばれる非常に優れた広範なライブラリを使用できます
  2. コンパイルすると、バイトコード(共通中間言語とも呼ばれます)と呼ばれるプラットフォームに依存しないポータブル中間コードが生成されます。このCILは、Microsoftの共通言語インフラストラクチャ仕様(CLI)の実装です。
  3. 他のタイプの中でも、32ビットのメモリアドレスで構成されているため、いわゆるWin32アプリケーションを作成できます。また、win32プログラム。あらゆる種類のGUI要素を使用したプログラミングが含まれます。

私は正しいですか?さて、私の質問

  1. mfcとbclの間の関係は何ですか。
  2. ctsとcilの関係は何ですか。
  3. Win32プログラミングの定義は、「32ビットアドレスを持つアプリケーション」に焦点を当てており、「GUI要素を含むアプリ」には焦点を当てていませんか。それともその逆ですか。
0 投票する
3 に答える
5647 参照

c# - ConcurrentBagにメモリリークがありますか実装?

重複
の可能性:ConcurrentBagでのメモリリークの可能性?

編集1:

実際の質問はです。これを確認できますか、それとも私のサンプルが間違っていて、明らかな何かが欠けていますか?

ConcurrentBagは、順序付けされていないリストの単純な代替品だと思いました。しかし、私は間違っていました。ConcurrentBagは、作成中のスレッドにThreadLocalとして自分自身を追加しますが、これは基本的にメモリリークを引き起こします。

バッグに追加するデータの量に応じて、Diffを250KBまたは100GBにすることができます。データもバッグもなくなります。

Windbgでこれに侵入し、!DumpHeapタイプの並行処理を実行すると

...。

空のConcurrentBagを作成して、一部のワーカースレッドにデータを追加させると、ConcurrentBagとそのデータは、作成中のスレッドがまだ生きている限りそこにあります。

このようにして、数GBのメモリリークが発生しました。リストとロックを使用してこれを「修正」しました。ConcurrentBagは高速かもしれませんが、同じオブジェクトの有効期間を持つリストの単純な置き換えとしては役に立ちません。

メインスレッドでConcurrentBagを作成した場合、スレッドが存続している限り、それを保持します。これは私が期待することではなく、大きな痛みを引き起こす可能性があります。

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

.net - 非同期操作をサポートし、タイムアウトを尊重する.NET TcpClient/NetworkStreamの実装

質問の数、フォーラムの投稿などに基づくと、BCLのTcpClient / NetworkStream実装には、IO操作をキャンセルするための適切なサポートが不足しているようです。.NET 4.5に非同期メソッドが追加されたことで、このキャンセルの欠如(または適切なタイムアウトサポート)により、IOの実行中にCancellationTokenの監視を拒否するタスクをキャンセルすることがさらに複雑になる(ほぼ不可能になる)ため、事態はさらに苛立たしくなります。 。

ネットワーク操作を監視し、問題が発生しているように見える場合は基になるストリームを閉じるために、追加のスレッドを起動する多くの実装を見てきました。非同期操作を使用してこれらのリソースを節約しようとしている世界では、これは非常に汚い感じがします。

ネットワークIO操作を効率的にキャンセル/タイムアウトすることに関するガイダンスの方向、または実際に機能する堅牢なサードパーティの実装に向けて、誰かが私を導くことができますか?