問題タブ [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.
.net - .NETが文字列と文字を区別するのはなぜですか?
文字列が足りませんか?
例として、 Stringクラスでchar配列またはstring配列のいずれかをSplitメソッド
に渡すことができるのはなぜですか?
文字列バージョンだけを使用することは完全に有効ですが?
c# - UnderlyingSystemTypeが現在のTypeインスタンスと異なるのはいつですか
System.Type
プロパティが含まれていUnderlyingSystemType
ます。MSDNは、次のように述べています。
このタイプを表す共通言語ランタイムによって提供されるタイプを示します。
ほとんどの場合、このプロパティは単に現在のType
インスタンスを返します。
私の質問は、どのような状況でこのプロパティが現在のインスタンス自体を返さないのかということです。Type
そして、そのような場合、現在のType
インスタンスと返される基になるシステムタイプはどのようなタイプになりますか?
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)
、どのように機能するのでしょうか? ハッシュはどのように計算されますか?
c# - MemoryStream の byte[] バッファのサイズを可変にすることはできますか?
オブジェクトをbyte[]
usingにシリアル化していますMemoryStream
:
'serialized'
のサイズに応じて成長するように設定する方法はありstuffToSerialize
ますか?
c# - Enum.TryParse: 戻り値が false の場合の out パラメータ値の保証または契約はありますか?
のドキュメントにInt32.TryParse
よると、メソッドが false を返す場合、out パラメータがゼロに設定されます。Enum.TryParse のドキュメントに同様の保証はありません。メソッドは out パラメータを何かに設定する必要があり、ゼロが最も理にかなっているからです。
保証は別の場所で指定または文書化されていますか、それとも本当に保証はありませんか?
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 で名前空間を別の方法で宣言して機能させることはできますか? もしそうなら、どのように?
c# - System.Drawing.Color -state にはどのような値がありますか?
System.Drawing.Color にはプライベート フィールドint state
があり、構造体に期待するよりも等価性をややこしくしています。
いったい何のためにあるのか、誰か知っていますか?誰が、何を、なぜ設定し、読み取るのか?
c# - BigInteger のサイズが ¼ GB を超えると、BigInteger の対数が正しくない
サイズがBigInteger
2 ギガビット (1/4 ギガバイトです。このしきい値は試行錯誤で見つけました) を超える場合、対数法では間違った答えが返されます。この単純なコードは次のことを示しています。
もちろん、 を超える数値に対しては正の対数、数値1
に対してはゼロの対数、と1
の間の数値に対しては負の対数が必要です(整数はありません)。私の数値以上は、慣例により、最上位バイトが と の間である場合、正の を意味するため、 より大きいです。0
1
i1
i2
1
0
127
BigInteger
のドキュメントを読むとBigInteger.Log
、対数が「Double データ型の範囲外」の場合にスローされる可能性があると主張しています。明らかに、それにはバイト数を超えるメモリストレージを備えたコンピューターが必要1E+300
であり、観測可能な宇宙は小さすぎてそのようなコンピューターを含めることはできないため、それは決して起こらないと思います.
では、なぜこれが機能しないのでしょうか。
PS!サイズ オーバー2 ^^ 31
ビットは、 の実際の値BigInteger
が オーバー2 ^^ (2 ^^ 31)
、またはおよそであることを意味しcirca 8.8E+646456992
ます。
更新: Microsoft Connect にバグ レポートを送信しました。議論を読んだ後、 の設計とBigInteger
1 つのオブジェクトのサイズの上限が 2 ギガバイトであるため、aBigInteger
が 2 ギガバイトを超えることはあり得ないことにも気付きました (メモリの量に関係なく)。したがって、このバグBigInteher
は が ¼ から 2 ギガバイトの間にある場合に発生します。
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>
ます。独自のラッパーを作成するのは簡単なことです。)