問題タブ [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.
c# - .NET に「ReferenceComparer」はありますか?
BCL にはIEqualityComparerを利用できる場所がいくつかあります。Enumerable.ContainsまたはDictionary Constructorのように。デフォルトのものに満足できない場合は、比較子を提供できます。
参照しているオブジェクトがコレクションに含まれているかどうかを知りたい場合があります。他の意味で「等しい」と見なされるものではありません。
問題は、BCL にReferenceEqualsメソッドのみに依存する標準の等値比較子が存在するかどうかです。
私が自分で書いたものはこれです:
私はそれを徹底的にテストしたり、多くのシナリオを検討したりしませんでしたが、うまくいきEnumerable.Contains
、Dictionary
かなり満足しているようです.
.net - いつBitVector32を使用する必要がありますか?
私はある時点で、まだ利用可能な日を1か月間表示する必要があるプロジェクトに取り組んでいます。利用可能な日数を計算する機能があります。私の同僚は次のように述べています。「ああ、あなたは返す必要がありますBitVector32
。これはブール値のリストを操作するときに最も効率的です。」私はList<bool>
そのようなものを使用したでしょう。あなたが実際にビットを扱っているとき、 ABitVector32
は低レベルのもののためのものであるように私には思えます。
だから、問題はです。BitVector32
32アイテム未満のブール値のリストが必要な場合はいつでも使用する必要がありますか、それとも低レベルのものにのみ使用する必要がありますか?
c# - 本当に重要というよりも雑学:Activator.CreateInstanceにnew()制約がないのはなぜですか()?
これに答えられるかもしれない人々がいると思います、これは好奇心からの質問です:
.NET v2で導入されたからのジェネリックCreateInstance
メソッドSystem.Activator
には、ジェネリック引数に型の制約はありませんが、アクティブ化された型にデフォルトのコンストラクターが必要です。そうでない場合は、MissingMethodException
がスローされます。私には、このメソッドには次のような型制約が必要であることは明らかです。
ここに潜んでいる単なる省略またはいくつかの逸話?
アップデート
指摘したように、コンパイラはあなたが書くことを許可していません
ただし、コメントを参照してください。構造体は、new()制約を指定するジェネリックメソッドの型引数として使用できます。この状況下では、与えられた答えがメソッドを制約しない唯一の正当な理由のようです...
これを見てくれてありがとう!
c# - BitArray を単一の int に変換するにはどうすればよいですか?
BitArray
シングルに変換するにはどうすればよいint
ですか?
.net - 特定のインターフェイスを実装する基本クラスライブラリのタイプのリストを見つける方法は?
特定のインターフェイスを実装するすべての標準.NETタイプのリストを知りたい場合があります。通常、それは好奇心からであり、時にはいくつかの実用的な目的もあります(しかしそれは重要ではありません)。
これをMSDNから取得しようとしましたが、タイプのページにはタイプの子のリンクのみが含まれ、インターフェイスを実装するタイプは含まれていません。
これを行う方法(または役立つツール)を知っていますか?
私はこのコードを書きました(ICollection
調査されているタイプです):
ただし、これにはいくつかの制限があります。
- 現在ロードされているアセンブリのみを検索します。
- ジェネリックインターフェイスでこれを行う方法がわかりませんでした(機能
ICollection<>
しません)。 - それがMSDNへのリンクを提供するならそれは素晴らしいでしょう(しかし私はそれが修正されるかもしれないと思います)。
手伝ってくれてありがとう!
.net - BCL は CLS とどのように関連していますか?
いくつかの .net 理論の質問: 実際に標準化されているライブラリはどれですか? 32 ビット整数やこのすべての低レベル情報などを指定する Common Type System があることは知っていますが、Common Language Specification と Base Class Libraries のステータス/関係について混乱しています。
システムには、System.Object、System.ValueType、System.Exception という基本的な型がいくつかあります。しかし、System.String や、.Length、.StartsWith、string.IsNullOrEmpty などのメソッド/プロパティについてはどうでしょうか?
これらは標準の一部ですか? ECMA-335 は、CLS 準拠の .net ランタイムを実装するのに十分ですか?
PS: 私は、人々が日常的に使用する多くの機能が標準に準拠していないことを知っていますが、Microsoft 独自の .net Framework 実装の一部です。これは、サポートされていないオペレーティング システムで既存のアプリを実行することに関するものではありません。そのためには Mono を検討します。これは実際には、.net のコアを構成するもの、.net 標準ライブラリとは何かについての理論的な問題です。
.net - BCLにCRCクラスがないのはなぜですか?
.NET Base Class LibaryにCRCクラスがないのはなぜですか?
c# - C# で必要な型は何ですか?
特定の型を必要とする C# の機能がいくつかあります (「型は実装する必要がありますSystem.IDisposable
」)。Select()
他の機能はパターン (「適切なシグネチャで呼び出されるメソッドのように見えるものを持つ任意の型」) に基づいています。
C# がライブラリから必要とする型の最小セットは何ですか (上記の前者のケース)? VB.NET や F# などの他の言語との違いは何ですか?
java - .NET BCLにjavaのFile.deleteOnExit()に相当するものはありますか?
おそらく、アプリケーションドメインを作成してDomainUnloadイベントにフックすることはできますが、プライマリアプリドメインでそれを実行したいと思います。
c# - System。*を使用していますか?自分のクラスの名前空間は悪い習慣と見なされていますか?
私はというクラスを持っていますConfigurationElementCollection<T>
これはの一般的な実装ですSystem.Configuration.ConfigurationElementCollection
それは私たちのソリューション'、Project.Utility.dllに保存されていますが、System.Configuration
名前空間の一部として定義しました
クラスをSystem。*名前空間に配置することは、それらがSystem。*基本クラスライブラリの一部ではない場合、悪い習慣と見なされますか?
一見すると、同じ場所に同じような機能を持つ同じようなクラスを保持しているので、それは理にかなっているようです。ただし、参照を探す場所がわからないため、実際には.net以外のBCLの一部であることに気付いていない人にとっては混乱を招く可能性があります。