タグ付けされた質問 「.net」

.NET Coreに関する質問には使用しないでください。代わりに[.net-core]を使用してください。.NETフレームワークは、主にMicrosoft Windowsオペレーティングシステム用に設計されたソフトウェアフレームワークです。これには、基本クラスライブラリ、共通言語ランタイム(一般にCLRと呼ばれる)、共通型システム(一般にCTSと呼ばれる)、および動的言語ランタイムの実装が含まれます。C#、VB.NET、F#、C ++ / CLIなど、多くのプログラミング言語をサポートしています。

27
List <T>を継承しないのはなぜですか?
私のプログラムを計画するとき、私はしばしば次のような一連の思考から始めます。 サッカーチームは、サッカー選手のリストにすぎません。したがって、私はそれを次のように表現する必要があります: var football_team = new List&lt;FootballPlayer&gt;(); このリストの順序は、プレーヤーが名簿にリストされている順序を表しています。 しかし、後でチームが記録する必要があるのは、単なるプレーヤーのリストに加えて、他のプロパティもあることに気づきました。たとえば、今シーズンのスコアの累計、現在の予算、均一な色、stringチームの名前を表すなど。 だから私は思う: さて、サッカーチームは選手のリストのようなものですが、それに加えて、名前(a string)と現在の合計スコア(an int)があります。.NETはサッカーチームを格納するためのクラスを提供していないため、自分でクラスを作成します。最も類似し、関連する既存の構造はList&lt;FootballPlayer&gt;なので、それを継承します。 class FootballTeam : List&lt;FootballPlayer&gt; { public string TeamName; public int RunningTotal } しかし、ガイドラインでは、から継承してはならないList&lt;T&gt;ことがわかっています。このガイドラインは2つの点で完全に混乱しています。 何故なの? どうやらList、何らかの形でパフォーマンスが最適化されています。どうして?拡張すると、どのようなパフォーマンスの問題が発生しListますか?正確には何が壊れますか? 私が見たもう1つの理由Listは、Microsoftから提供されたものであり、私はそれを制御できないため、「パブリックAPI」を公開した後で後で変更することはできません。しかし、私はこれを理解するのに苦労しています。パブリックAPIとは何ですか。なぜ気にする必要があるのですか。現在のプロジェクトにこのパブリックAPIが含まれていない可能性がある場合、このガイドラインを無視しても安全ですか?私は、継承を行う場合List と、、それは私が公共のAPIを必要と判明し、どのような困難私が持っているのだろうか? なぜそれが重要なのですか?リストはリストです。何が変わる可能性がありますか?何を変更したいですか? そして最後に、Microsoftがからの継承を望まないのであればList、なぜ彼らはクラスを作らなかったのでしょうか。sealedですか? 他に何を使うべきですか? どうやら、カスタムコレクションの場合、Microsoft Collectionはの代わりに拡張する必要のあるクラスを提供していListます。しかし、このクラスは非常に裸であり、たとえばなどAddRange、多くの有用なものはありません。jvitor83の答えは、その特定のメソッドのパフォーマンスの根拠を提供しますが、遅いのAddRangeは遅いよりも良いですAddRangeどうしてですか からのCollection継承はList、からの継承よりもはるかに多くの作業であり、私には利点がないと思います。確かにMicrosoftは理由もなく余分な作業をするように言わないので、何かを誤解しているように感じずにはいられず、継承Collectionは私の問題の正しい解決策ではありません。 実装などの提案を見てきました IList。いいえ。これは何十行ものボイラープレートコードで、何も得られません。 最後に、List何かを何かにラップすることを提案する人もいます: class FootballTeam { public List&lt;FootballPlayer&gt; Players; } これには2つの問題があります。 それは私のコードを不必要に冗長にします。my_team.Players.Countただ電話をする代わりに今すぐ電話しなければなりませんmy_team.Count。ありがたいことに、C#を使用すると、インデックス作成を透過的にするようにインデクサーを定義し、内部のすべてのメソッドを転送できますList...しかし、これは大量のコードです。すべての作業で何が得られますか? それだけでは意味がありません。サッカーチームは、選手のリストを「持っていません」。これは、ある選手のリスト。「John McFootballerがSomeTeamのプレーヤーに参加した」とは言わないでください。あなたは「ジョンがSomeTeamに参加した」と言います。「文字列の文字」に文字を追加するのではなく、文字列に文字を追加します。図書館の本に本を追加するのではなく、本を図書館に追加します。 …
1400 c#  .net  list  oop  inheritance 


30
別のスレッドからGUIを更新するにはどうすればよいですか?
をLabel別のものから更新する最も簡単な方法はどれThreadですか? 私はでForm実行してthread1おり、そこから別のスレッド(thread2)を開始しています。 thread2がいくつかのファイルを処理している間Labelに、の作業のForm現在のステータスでを更新したいと思いますthread2。 どうすればできますか?


30
URLのPath.Combine?
Path.Combineは便利ですが、URLの .NETフレームワークにも同様の機能はありますか? 私はこのような構文を探しています: Url.Combine("http://MyUrl.com/", "/Images/Image.jpg") 返すでしょう: "http://MyUrl.com/Images/Image.jpg"
1244 c#  .net  asp.net  url  path 


8
リフレクションを使用してジェネリックメソッドを呼び出すにはどうすればよいですか?
型パラメーターがコンパイル時に不明であるが、実行時に動的に取得される場合にジェネリックメソッドを呼び出す最善の方法は何ですか? 次のサンプルコードについて考えてみましょう。Example()メソッド内で、変数に格納されたものをGenericMethod&lt;T&gt;()使用して呼び出す最も簡潔な方法は何ですか。TypemyType public class Sample { public void Example(string typeName) { Type myType = FindType(typeName); // What goes here to call GenericMethod&lt;T&gt;()? GenericMethod&lt;myType&gt;(); // This doesn't work // What changes to call StaticMethod&lt;T&gt;()? Sample.StaticMethod&lt;myType&gt;(); // This also doesn't work } public void GenericMethod&lt;T&gt;() { // ... } public static void …
1071 c#  .net  generics  reflection 

21
「async」と「await」をいつどのように使用するか
ことを主な事柄の私の理解1からasyncとawait書きやすいコードを作成し、読みすることです-しかし、それらを使用している長時間のロジックを実行するためにバックグラウンドスレッドを産卵に等しいですか? 現在、最も基本的な例を試しています。インラインでコメントを追加しました。はっきりさせてくれませんか? // I don't understand why this method must be marked as `async`. private async void button1_Click(object sender, EventArgs e) { Task&lt;int&gt; access = DoSomethingAsync(); // task independent stuff here // this line is reached after the 5 seconds sleep from // DoSomethingAsync() method. Shouldn't it be reached immediately? …


23
DataTableのLINQクエリ
DataTableオブジェクトでLINQクエリを実行しようとしていますが、奇妙なことに、DataTablesでそのようなクエリを実行するのは簡単ではありません。例えば: var results = from myRow in myDataTable where results.Field("RowNo") == 1 select results; これは許可されていません。このようなものをどのように機能させるのですか? LINQクエリがDataTablesで許可されていないことに驚いています!
1031 c#  .net  linq  datatable  .net-3.5 




14
複数の列でグループ化
LINQでGroupBy複数列を実行する方法 SQLでこれに似たもの: SELECT * FROM &lt;TableName&gt; GROUP BY &lt;Column1&gt;,&lt;Column2&gt; これをLINQに変換するにはどうすればよいですか。 QuantityBreakdown ( MaterialID int, ProductID int, Quantity float ) INSERT INTO @QuantityBreakdown (MaterialID, ProductID, Quantity) SELECT MaterialID, ProductID, SUM(Quantity) FROM @Transactions GROUP BY MaterialID, ProductID
967 c#  .net  linq  group-by  aggregate 


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.