タグ付けされた質問 「c#」

C#は、Microsoftが.NETプラットフォームと並行して作成した、マルチパラダイムで管理されたガベージコレクションのオブジェクト指向プログラミング言語です。

3
子から親へのリンク-悪い考えですか?
私は私の親がそれが子供だと知っている状況がありますが(duh)、子供が親を参照できるようにしたいです。その理由は、子供が自分がそう感じたときに、自分自身を最も重要または最も重要でないものとして指定できるようにすることです。子がこれを行うと、親の子の上部または下部に移動します。 過去に、親に対して参照するために子のWeakReferenceプロパティを使用しましたが、面倒なオーバーヘッドが追加されると感じていますが、それが最善の方法かもしれません。 これは悪い考えですか?この機能をどのように異なる方法で実装しますか? 更新1:コンテキストの追加。これはレンダリングシステムなので、親コンテナはグループ化されたウィンドウのリストです。「私は最も重要です!」という子項目(ウィンドウ)基本的に、残りのウィンドウの上部にレンダリングしたい。 親は、これらの子をグループ化するための単なる論理コンテナーです。イベントを追加して、リクエストが一番上にあることを通知するのは良い考えです。しかし、実装(子が親に対して何をしたいのか)は別として、なぜあなたは子→親リンクを持ちたくないのでしょうか?二重にリンクされたリストがこれを行うので、人々は何かを行き来できます。

4
流れるようなインターフェースは属性よりも柔軟性がありますか?
EF 4.1 Code Firstチュートリアルでは、次のコードが提供されています。 public class Department { public int DepartmentId { get; set; } [Required] public string Name { get; set; } public virtual ICollection<Collaborator> Collaborators { get; set; } } 次に、流れるようなインターフェイスがより柔軟であることが説明されています。 データアノテーションは間違いなく簡単に使用できますが、はるかに柔軟性の高いプログラムによるアプローチを使用することをお勧めします。 流れるようなインターフェースの使用例を次に示します。 protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<Department>().Property(dp => dp.Name).IsRequired(); modelBuilder.Entity<Manager>().HasKey(ma => ma.ManagerCode); modelBuilder.Entity<Manager>().Property(ma => ma.Name) …
15 c#  coding-style 

6
C#は読みにくくなっていますか?
C#の進歩に伴い、多くの言語機能が追加されました。それは私にとって読めなくなってきています。 例として、Caliburn.Microコードから次のコードスニップを考慮し、ここで: container = CompositionHost.Initialize( new AggregateCatalog( AssemblySource.Instance. Select(x => new AssemblyCatalog(x)) .OfType<ComposablePartCatalog>() ) ); さて、これはほんの小さな例です。 私にはいくつかの質問があります: これは一般的な問題または既知の問題ですか? C#コミュニティは同じことを見つけていますか? これは言語の問題ですか、それとも開発者が使用しているスタイルですか? 他のコードをよりよく理解し、この方法でコードを書くことを避けるための簡単な解決策はありますか?
15 c#  readability 

5
クエリのために何千万ものオブジェクトを格納するための効率的な方法で、1秒あたりの挿入数が多いですか?
これは基本的に、p2pチャットネットワークでパケットの数をカウントし、パケットのタイプなどをカウントしているロギング/カウントアプリケーションです。これは、5分間で約400〜600万パケットに相当します。また、この情報の「スナップショット」のみを取得するため、5分ごとに5分以上経過したパケットのみを削除しています。したがって、このコレクションに含まれるアイテムの最大数は1,000万から1200万です。 異なるスーパーピアに300接続する必要があるため、各パケットが少なくとも300回挿入されようとしている可能性があります(おそらく、このデータをメモリに保持することが唯一の妥当なオプションである理由です)。 現在、私はこの情報を保存するために辞書を使用しています。しかし、大量のアイテムを保存しようとしているため、大きなオブジェクトヒープで問題が発生し、メモリの使用量は時間とともに継続的に増加します。 Dictionary<ulong, Packet> public class Packet { public ushort RequesterPort; public bool IsSearch; public string SearchText; public bool Flagged; public byte PacketType; public DateTime TimeStamp; } mysqlを使用しようとしましたが、挿入する必要があるデータ量に対応できませんでした(重複していないことを確認しながら)。それはトランザクションの使用中です。 私はmongodbを試しましたが、そのためのCPU使用は非常識で、どちらも保持しませんでした。 5分以上経過したすべてのパケットを削除し、このデータの「スナップショット」を取得するため、私の主な問題は5分ごとに発生します。LINQクエリを使用して、特定のパケットタイプを含むパケットの数をカウントしているため。また、データのdistinct()クエリを呼び出しています。ここでは、keyvaluepairのキーから4バイト(IPアドレス)を取り除き、keyvalupairのValueのrequestingport値と組み合わせて、それを使用して、すべてのパケットからのピア。 アプリケーションは現在、約1.1GBのメモリ使用量を保持しており、スナップショットが呼び出されると、使用量を2倍にまで増やすことができます。 これで、異常な量のRAMがあれば問題になりませんが、現在実行しているvmは2GBのRAMに制限されています。 簡単な解決策はありますか?


3
名前空間とクラス名のガイドライン
utilsやその他のヘルプクラスが関係しているときに、クラスとサービスの名前を正しく指定できません。 以下をどのように構成しますか? EventService.cs EventServiceUtils.cs EventServiceValidators.cs EventServiceCoordinator.cs 等... 上記のサービスと同じニーズを持つ複数のサービスがあります。1つの考えは、このすべてを適切なネームスペースに分けて、次のように見えるようにすることです。 Services.EventService.EventService.cs //(the actual service) Services.EventService.Validators.DateValidator.cs Services.EventService.Validators.ParticipantValidator.cs Services.EventService.Coordinators.ParticipantCoordinator.cs Services.EventService.ExtensionMethods.Extensions.cs 等々。もちろん、すべての名前空間は個別のフォルダーです。しかしDateValidators、他のサービスにはおそらくもっと多くのものがあるため、これは100%ではありません。 またServices.EventService.EventService.cs、名前空間にクラス名が含まれていますが、これも良くありません。を使用できますServices.Event.EventService.csが、もちろんその名前のエンティティは既に存在します。 これがドメインモデルです。
15 c#  architecture 

6
C#がわからない場合に優れたC#開発者を雇う方法は?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 4年前に閉鎖されました。 私はC ++開発者です。Windowsがネイティブレベルでどのように機能するかは知っていますが、私はC#と.NETの専門家ではありません。チームにC#開発者が必要になりました(開発者はすべてC ++です)。C#のレベルがわからない場合、どうすれば優れたC#開発者を雇うことができますか?質問をする方法、答えがすばらしいか、または愚かな間違いがあるかどうかをテストする方法は?
15 c#  c++  hiring 

1
「カオスモンキー」を実装し、効果的に対応する例はありますか?
Jeff Atwoodは最近、Netflixの「Chaos Monkey」の実装に関するブログ投稿を書きました。非常に高レベルの記事です。システムをテストするためにこの手法を実際に実装した人がいるかどうかは興味があります。 私が本当に求めていることは、システムがクラッシュする部分をアーキテクチャが生き残ることができるようにするために、どのような戦略を実装していますか?

7
ゲームプログラミング:C#またはC ++?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または詳細な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 6年前に閉鎖されました。 ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け入れていません。 私が本当にやりたいのは、ゲームプログラミングを行うことです。だから、自問自答のプログラミングを学びたい18歳のとき、C#とC ++の間で最も適したプログラミング言語は何ですか?(私は、Windowsが依然として最も使用されるOSであると信じているため、Unixを気にしないと述べるべきです) 私はC ++の基本を知っていますが、C#については知りません。C ++にはチュートリアルガイド、dllなどがありますが、C#にはないことを知っていますが、一人でプログラムを開発するのは習得して使用する方がはるかに簡単ですが、プログラムが難読化されていても読んでいますソースを入手するのは簡単です。 まあ、まず基本に集中したいのですが、C ++の方が自分に適していると感じているからといって、C ++を好みますが、私は一人で働くことを考えなければなりません。だから、たとえそれが好きだったとしても、それが最善のことではないかもしれません。 どっちがいいかわからない、いろいろなウェブサイトでたくさんのスレッドを読んだことがあるし、C#がC ++よりも人気が出てきているようだ。しかし、そうは言っても、私はゲームプログラミングをしたいとも指定しました。ですから、「C ++はそうではないのに.NETメモリを処理するのでC#の方が簡単です」よりも良い点をいくつか知る必要があります。

4
クラスにスレッド/バックグラウンドワーカーを配置するのは「間違った」/悪い設計ですか?
Excel(C#および.Net 4)から読み取るクラスがあり、そのクラスには、UIの応答性を維持しながらExcelからデータをロードするバックグラウンドワーカーがあります。私の質問は次のとおりです。クラスにバックグラウンドワーカーを配置するのは悪い設計ですか。クラスなしでクラスを作成し、バックグラウンドワーカーを使用してそのクラスを操作する必要がありますか?この方法でクラスを作成することに関する問題は実際にはありませんが、それでも私は初心者なので、先に進む前に確認することを考えました。 私のコードが機能するので、これはスタックオーバーフローではないはずだと思うので、この質問がここで関連することを願っています。これは単なる設計上の問題です。

13
async&await-代替案のポーリング[終了]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または詳細な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 c#5の準備が整ったので、Anders Heijsbergが昨日PDC10で発表した「Asynchrony」の2つの新しいキーワードの選択に影響を与えるための空きがあるようです。 async void ArchiveDocuments(List<Url> urls) { Task archive = null; for(int i = 0; i < urls.Count; ++i) { var document = await FetchAsync(urls[i]); if (archive != null) await archive; archive = ArchiveAsync(document); } } Eric Lippertは、現在の2つのキーワードの選択と、それらがユーザビリティ研究で誤解されている方法について説明しています。コメントには他にもいくつかの提案があります。 お願い-回答ごとに1つの提案、重複は削除されます。
15 c#  naming 

4
データリーダー行を取得し、すべてのレコードを読み取らない場合、データベース接続は閉じられますか?
方法を理解しながらyieldキーワード作品を、私が出会ったリンク1とリンク2の使用を提唱StackOverflowの上yield returnDataReaderオブジェクトを反復処理しながら、をし、それは私のニーズに合ったとしても。しかし、yield return以下に示すように使用し、DataReader全体を反復処理しない場合、DB接続はいつまでも開いたままになるのか、疑問に思います。 IEnumerable<IDataRecord> GetRecords() { SqlConnection myConnection = new SqlConnection(@"..."); SqlCommand myCommand = new SqlCommand(@"...", myConnection); myCommand.CommandType = System.Data.CommandType.Text; myConnection.Open(); myReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection); try { while (myReader.Read()) { yield return myReader; } } finally { myReader.Close(); } } void AnotherMethod() { foreach(var rec in GetRecords()) { i++; System.Console.WriteLine(rec.GetString(1)); if …
15 c#  database  .net  resources 

1
科学計算ライブラリの単体テスト
以前、ユニットテストの経験が少しありました。(軽jor的ではなく)古典的なソフトウェアエンジニアリングプロジェクト:MVC、ユーザーGUI、データベース、中間層のビジネスロジックなど。 m C#で科学計算ライブラリを作成する(そう、C#が遅すぎること、Cを使用すること、車輪を再発明しないことなど)私たちはそれを必要としています)。ソフトウェア開発業界の観点から見ると、これは小さなプロジェクトです。なぜなら、私はほとんど自分で、そして時々同僚の助けを借りて書いているからです。また、私はそれに支払われません、そして最も重要なのは、学術プロジェクトです。つまり、いつかプロ品質になると期待しています。なぜなら、私はオープンソースになることを計画しているからです。 とにかく、プロジェクトは大きくなり(18,000行程度のコードで、1人のプロジェクトにとっては大きいと思います)、手に負えなくなりました。私はgitをソース管理に使用していますが、大丈夫だと思いますが、古い学校のようにテストしています。つまり、主にシステムの大部分をテストする完全なコンソールアプリケーションを作成しています。このシナリオで単体テストを行うことはできますが、それが私がやるべきことだと思います。問題は、ライブラリの大部分がアルゴリズム(たとえば、グラフアルゴリズム、分類器、数値ソルバー、ランダム分布など)であるということです。これらのアルゴリズムのそれぞれに小さなテストケースを指定する方法がわかりません。確率論的正当性を検証する方法がわかりません。たとえば、分類の場合、精度や再現率などの指標がありますが、ただし、これらのメトリックは、単一のアルゴリズムを判断するよりも2つのアルゴリズムを比較する方が適切です。だから、ここで正確さを定義するにはどうすればよいですか? 最後に、パフォーマンスの問題もあります。まったく異なるテストセットを知っていますが、パフォーマンスは、ユーザーの満足度や他のソフトウェアエンジニアリングメトリックではなく、科学ツールの重要な機能の1つです。 私の最大の問題の1つは、データ構造にあります。kd-treeについて考えられる唯一のテストはストレステストです。大量のランダムベクトルを挿入してから、大量のランダムクエリを実行し、単純な線形検索と比較します。パフォーマンスについても同じです。数値オプティマイザーを使用すると、テストできるベンチマーク関数がありますが、これもストレステストです。これらのテストは単体テストとして分類できるとは思わず、最も重要なのは、それらのほとんどがかなり重いため、継続的に実行されることです。しかし、これらのテストを実行する必要があると思います。2つの要素を挿入してルートをポップすることはできません。はい、0-1-nの場合に機能します。 それで、もしあれば、この種のソフトウェアの(ユニット)テストアプローチは何ですか?そして、コードビルドビルドコミット統合サイクルの周りでユニットテストと重いテストをどのように整理しますか?
15 c#  unit-testing 

6
静的キーワードを理解する
Java、Javascript、およびPHPを使用した開発の経験があります。 Microsoft Visual C#2010 Step by Stepを読んでいますが、C#言語を紹介する上で非常に良い本だと感じています。 静的キーワードの理解に問題があるようです。クラスが静的に宣言されている場合、これまで私が理解していたことから、すべてのメソッドと変数は静的でなければなりません。メインメソッドは常に静的メソッドであるため、メインメソッドが存在するクラスでは、すべての変数とメソッドは、メインメソッドで呼び出す必要がある場合、静的と宣言されます。また、別のクラスから静的メソッドを呼び出すために、クラス名を使用できるオブジェクトを作成する必要がないことに気付きました。 しかし、静的キーワードの実際の目的は何ですか?静的変数とメソッドはいつ宣言する必要がありますか?

6
.NETの「文字列」と「文字列」の違いはどれですか?
.NET Frameworkでは、少なくともC#言語では、文字列型の2つの「バージョン」があります。 "ストリング" "ストリング" それらは互換性があるように見えますが、本当にそうですか?それらが互換性がない場合、一般的に、他の代わりに一方を使用する方が良いでしょうか?
15 c#  .net 

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