問題タブ [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 投票する
1 に答える
97 参照

.net - .NETが文字列と文字を区別するのはなぜですか?

文字列が足りませんか?

例として、 Stringクラスでchar配列またはstring配列のいずれかをSplitメソッド
に渡すことができるのはなぜですか? 文字列バージョンだけを使用することは完全に有効ですが?

  1. String.Splitメソッド(Char []、StringSplitOptions)
  2. String.Splitメソッド(String []、StringSplitOptions)
0 投票する
1 に答える
3251 参照

c# - UnderlyingSystemTypeが現在のTypeインスタンスと異なるのはいつですか

System.Typeプロパティが含まれていUnderlyingSystemTypeます。MSDNは、次のように述べています。

このタイプを表す共通言語ランタイムによって提供されるタイプを示します。

ほとんどの場合、このプロパティは単に現在のTypeインスタンスを返します。

私の質問は、どのような状況でこのプロパティが現在のインスタンス自体を返さないのかということです。Typeそして、そのような場合、現在のTypeインスタンスと返される基になるシステムタイプはどのようなタイプになりますか?

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

c# - RuntimeHelpers.GetHashCode は何をしますか

このRuntimeHelpers.GetHashCode(object)メソッドを使用すると、オブジェクトの ID に基づいてハッシュ コードを生成できます。MSDNの状態:

オブジェクトのタイプが Object.GetHashCode メソッドをオーバーライドした場合でも、RuntimeHelpers.GetHashCode メソッドは常に Object.GetHashCode メソッドを非仮想的に呼び出します。

ただし、Reflector (.NET 4.0) を使用してメソッドを検査するとObject.GetHashCode()、次のコードが表示されます。

Object.GetHashCode内部から呼び出すRuntimeHelpers.GetHashCode(object)とスタック オーバーフローが発生するため、MSDN のドキュメントが間違っていると思われます。

では、実際の動作はどのようなものでRuntimeHelpers.GetHashCode(object)、どのように機能するのでしょうか? ハッシュはどのように計算されますか?

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

c# - MemoryCache は魔法のように Disposed 状態になります

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

c# - MemoryStream の byte[] バッファのサイズを可変にすることはできますか?

オブジェクトをbyte[]usingにシリアル化していますMemoryStream:

'serialized'のサイズに応じて成長するように設定する方法はありstuffToSerializeますか?

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

c# - Enum.TryParse: 戻り値が false の場合の out パラメータ値の保証または契約はありますか?

のドキュメントにInt32.TryParseよると、メソッドが false を返す場合、out パラメータがゼロに設定されます。Enum.TryParse のドキュメントに同様の保証はありません。メソッドは out パラメータを何かに設定する必要があり、ゼロが最も理にかなっているからです。

保証は別の場所で指定または文書化されていますか、それとも本当に保証はありませんか?

0 投票する
0 に答える
94 参照

silverlight - Silverlight XAML で単純な BCL オブジェクトをインスタンス化できない

正しい XML 名前空間を宣言すると、Silverlight XAML の public および既定のコンストラクターを使用して独自のクラスを作成/インスタンス化できますResourceDictionary

ただし、名前空間内の基本クラス ライブラリの (UI 以外の) クラスのいずれかでそれを試みるとSystem.*、型が見つからないというエラーが発生します。

例えば:

エラーが表示されますThe type 'AesManaged' was not found because 'clr-namespace:System.Security.Cryptography;assembly=System.Core' is an unknown namespace. [Line: 12 Position: 37]

簡単にできると思っていたので困っています。私は Visual Studio 2012 と Silverlight 5 を使用しています。System.Coreアセンブリはプロジェクトで正しくリンクされています (既定では)。XAML で名前空間を別の方法で宣言して機能させることはできますか? もしそうなら、どのように?

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

c# - System.Drawing.Color -state にはどのような値がありますか?

System.Drawing.Color にはプライベート フィールドint stateがあり、構造体に期待するよりも等価性をややこしくしています。

いったい何のためにあるのか、誰か知っていますか?誰が、何を、なぜ設定し、読み取るのか?

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

c# - BigInteger のサイズが ¼ GB を超えると、BigInteger の対数が正しくない

サイズがBigInteger2 ギガビット (1/4 ギガバイトです。このしきい値は試行錯誤で見つけました) を超える場合、対数法では間違った答えが返されます。この単純なコードは次のことを示しています。

もちろん、 を超える数値に対しては正の対数、数値1に対してはゼロの対数、と1の間の数値に対しては負の対数が必要です(整数はありません)。私の数値以上は、慣例により、最上位バイトが と の間である場合、正の を意味するため、 より大きいです。01i1i210127BigInteger

のドキュメントを読むとBigInteger.Log、対数が「Double データ型の範囲外」の場合にスローされる可能性があると主張しています。明らかに、それにはバイト数を超えるメモリストレージを備えたコンピューターが必要1E+300であり、観測可能な宇宙は小さすぎてそのようなコンピューターを含めることはできないため、それは決して起こらないと思います.

では、なぜこれが機能しないのでしょうか。

PS!サイズ オーバー2 ^^ 31ビットは、 の実際の値BigIntegerが オーバー2 ^^ (2 ^^ 31)、またはおよそであることを意味しcirca 8.8E+646456992ます。


更新: Microsoft Connect にバグ レポートを送信しました。議論を読んだ後、 の設計とBigInteger1 つのオブジェクトのサイズの上限が 2 ギガバイトであるため、aBigIntegerが 2 ギガバイトを超えることはあり得ないことにも気付きました (メモリの量に関係なく)。したがって、このバグBigInteherは が ¼ から 2 ギガバイトの間にある場合に発生します。

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

collections - HashSet がない理由IReadOnlyCollection を実装する?

IReadOnlyCollection<T>やなどの .NET 4.5 の新しい読み取り専用インターフェイスIReadOnlyDictionary<TKey,TValue>は非常に便利です。特にCollection<T>List<T>やなどの一般的な BCL 型に実装されているためDictionary<TKey,TValue>です。

ただし、実装するようにアップグレードされていませんHashSet<T>。また、これらのクラスは変更や破壊的変更なしでインターフェイスと一致するため、この決定の背後にあるロジックを確認できません。BCL チームが見落としていたのでしょうか、それとも私が見逃しているものがありますか?SortedSet<T>IReadOnlyCollection<T>

(セットを a 内にラップする組み込みの方法がないため、これは特に厄介ですIReadOnlyCollection<T>。実際、ReadOnlyCollection<T>ラップIList<T>ではなく、ラップしICollection<T>ます。独自のラッパーを作成するのは簡単なことです。)