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

C#(「seesharp」と発音)は、Microsoftによって開発された、静的に型指定された高レベルのマルチパラダイムプログラミング言語です。C#コードは通常、Microsoftの.NETファミリのツールとランタイムを対象としています。これには、.NET Framework、.NET Core、Xamarinなどが含まれます。このタグは、C#またはC#の正式な仕様で記述されたコードに関する質問に使用します。

30
Visual Studioは「コピーできませんでした」…ビルド中
VS2012 C#プロジェクトのビルド中にこのエラーが発生し続ける Error 41 Could not copy "obj\Debug\WeinGartner.WeinCad.exe" to "bin\Debug\WeinGartner.WeinCad.exe". Exceeded retry count of 10. Failed. Error 42 Unable to copy file "obj\Debug\WeinGartner.WeinCad.exe" to "bin\Debug\WeinGartner.WeinCad.exe". The process cannot access the file 'bin\Debug\WeinGartner.WeinCad.exe' because it is being used by another process. 今私はプロセスを殺すことを理解しました Weingartner.WeinCad.vhost.exe (時々)動作しますが、これは私の神経になっています。これをまったく止める方法はありますか? 私のデバッガ設定は

18
XmlSerializerがコンストラクタでFileNotFoundExceptionを与える
タイプをシリアル化しようとすると、以前使用していたアプリケーションが失敗します。 のようなステートメント XmlSerializer lizer = new XmlSerializer(typeof(MyType)); 生成する: System.IO.FileNotFoundException occurred Message="Could not load file or assembly '[Containing Assembly of MyType].XmlSerializers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified." Source="mscorlib" FileName="[Containing Assembly of MyType].XmlSerializers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" FusionLog="" StackTrace: at System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, …

4
Linqクエリ結果を辞書に変換
Linq to SQLを使用してデータベースにいくつかの行を追加したいが、行を追加する前に「カスタムチェック」を実行して、受信行を追加、置換、または無視する必要があるかどうかを確認したい。クライアントとDBサーバー間のトラフィックをできる限り少なくし、クエリの数を最小限にしたいと考えています。 これを行うには、検証に必要な最小限の情報を、プロセスの最初に一度だけフェッチします。 私はこのようなことをしようと考えていましたが、明らかに、それはうまくいきません。誰かがアイデアを持っていますか? Dictionary<int, DateTime> existingItems = (from ObjType ot in TableObj select (new KeyValuePair<int, DateTime>(ot.Key, ot.TimeStamp)) ) 最後に、TableObjectからObjectTypeオブジェクト全体をダウンロードする必要のないディクショナリが必要です。 次のコードも検討しましたが、適切な方法を見つけようとしました。 List<int> keys = (from ObjType ot in TableObj orderby ot.Key select ot.Key).ToList<int>(); List<DateTime> values = (from ObjType ot in TableObj orderby ot.Key select ot.Value).ToList<int>(); Dictionary<int, DateTime> existingItems = …

3
TransactionsまたはSaveChanges(false)とAcceptAllChanges()を使用していますか?
私はトランザクションを調査してきましたが、エラーがなければ、私が渡しfalseてSaveChanges()呼び出しを行う限り、EFでトランザクションを処理しているようAcceptAllChanges()です。 SaveChanges(false); // ... AcceptAllChanges(); 問題が発生した場合はどうなりますか?ロールバックする必要はありませんか、またはメソッドがスコープから外れるとすぐに、トランザクションは終了しますか? トランザクションの途中で割り当てられたインディティカラムはどうなりますか?私が悪くなる前に誰かが私の後にレコードを追加したとしたら、これはID値が欠落していることを意味します。 TransactionScopeコードで標準クラスを使用する理由はありますか?

13
C#で==と!=の両方を定義する必要があるのはなぜですか?
C#コンパイラでは、カスタム型がoperatorを定義する場合は常に==、それも定義する必要があります!=(ここを参照)。 どうして? デザイナーがなぜそれを必要と考えたのか、そしてどちらか一方しか存在しない場合にコンパイラーがどちらかの演算子の妥当な実装をデフォルトにできないのか知りたいです。たとえば、Luaでは等値演算子のみを定義でき、もう1つは無料で取得できます。C#は、==または==と!=の両方を定義して、不足している!=演算子をとして自動的にコンパイルするように要求することで、同じことを行うことができます!(left == right)。 (IEEE-754 NaNのように)一部のエンティティが等しくも等しくもない場合がある奇妙なコーナーケースがあることを理解していますが、それらは例外ではなく、規則のように見えます。したがって、これは、C#コンパイラの設計者が例外をルールにした理由を説明していません。 等号演算子が定義されている仕上がりの悪さの例を見てきましたが、不等号演算子は、すべての比較が反転され、すべての&&が||に切り替えられたコピー/貼り付けです。(要点がわかります...基本的に!(a == b)は、ドモルガンのルールによって拡張されます)。これは、Luaの場合のように、コンパイラーが意図的に排除できるのは悪い習慣です。 注:演算子<> <=> =についても同様です。これらを不自然な方法で定義する必要がある場合は想像できません。Luaでは、前者の否定を通して、<と<=だけを定義し、> =と>を自然に定義できます。C#が同じことをしないのはなぜですか(少なくとも「デフォルト」)。 編集 どうやらプログラマーが等しいかどうかのチェックを実装できるようにする正当な理由があるようです。いくつかの回答は、それが良い場合を示しています。 しかし、私の質問の核心は、通常これが論理的に必要ではないのに、なぜこれがC#で強制的に要求されるのかということです。 またObject.Equals、のような.NETインターフェースの設計上の選択とは著しく対照的IEquatable.Equals IEqualityComparer.Equalsです。NotEquals対応するものがないため、フレームワークは!Equals()オブジェクトを不平等と見なし、それがそうです。さらに、のようなクラスDictionaryとメソッドのようなもの.Contains()は、前述のインターフェースにのみ依存しており、たとえ定義されていても、直接演算子を使用しません。実際、ReSharperが同等のメンバーを生成するとき、ReSharperは、ユーザーが演算子を生成することを選択した場合に限り、その両方の観点から、そしてその場合でも、両方==を定義します。オブジェクトの等価性を理解するために、フレームワークでは等価演算子は必要ありません。!=Equals() 基本的に、.NETフレームワークはこれらの演算子を考慮せず、いくつかのEqualsメソッドのみを考慮します。==と!=の両方の演算子をユーザーがタンデムで定義することを要求する決定は、.NETに関する限り、オブジェクトのセマンティクスではなく、純粋に言語設計に関連しています。


17
LINQを使用して文字列を連結する
オールドスクールを書くための最も効率的な方法は何ですか: StringBuilder sb = new StringBuilder(); if (strings.Count > 0) { foreach (string s in strings) { sb.Append(s + ", "); } sb.Remove(sb.Length - 2, 2); } return sb.ToString(); ... LINQで?

11
「はい」、「いいえ」の選択肢とDialogResultを含むメッセージボックスを作成するにはどうすればよいですか?
単純な「はい/いいえ」を選択したメッセージボックスを作成したいのですが、そのためのフォームを設計するのはナンセンスだと思います。これを実現するために、メッセージボックスを使用したり、ボタンを追加したりできると思いました。シンプルですが、DialogResultが返されないので、結果を取得するにはどうすればよいですか?

30
.NETでは、「for」または「foreach」のどちらのループが速く実行されますか?
C#/ VB.NET / .NETでは、どのループがより速く実行されますforかforeach? ループがずっと前にループforよりも速く機能することを読んだので、それがすべてのコレクション、ジェネリックコレクション、すべての配列などに当てはまると思いました。foreach 私はGoogleを調べていくつかの記事を見つけましたが、それらのほとんどは決定的ではなく(記事に関するコメントを読んで)、自由回答です。 理想的なのは、各シナリオをリストして、それらの最良のソリューションを用意することです。 たとえば(それがどうあるべきかのほんの一例): 1000以上の文字列の配列を反復するため- forより良いですforeach IList(非ジェネリック)文字列を反復するため- foreachより優れていますfor 同じことをウェブ上で見つけたいくつかの参考文献: エマニュエルシャンツァーによるオリジナルの壮大な古い記事 CodeProject FOREACH対。ために ブログ-するべきforeachかどうかforeach、それが問題です ASP.NETフォーラム-NET 1.1 C#forvsforeach [編集] 読みやすさの側面は別として、私は事実と数字に本当に興味があります。絞り込まれたパフォーマンス最適化の最後の1マイルが問題になるアプリケーションがあります。
345 c#  .net  performance  for-loop 

7
Byte []配列をC#のファイルに書き込むことはできますか?
Byte[]完全なファイルを表す配列をファイルに書き出そうとし ています。 クライアントからの元のファイルはTCPを介して送信され、サーバーによって受信されます。受信したストリームはバイト配列に読み込まれ、送信されてこのクラスで処理されます。 これは主に受信を確実にすることです TCPClientで次のストリームの準備ができと処理側を分離するためです。 の FileStreamクラスは、バイト配列を引数として使用したり、別のStreamオブジェクトを使用したりしません(バイトオブジェクトをバイトオブジェクトに書き込むことができます)。 オリジナル(TCPClientを使用するスレッド)とは異なるスレッドで処理を実行することを目指しています。 これを実装する方法がわかりません。何を試したらいいですか?
344 c#  .net 

13
別のスレッドが所有しているため、呼び出しスレッドはこのオブジェクトにアクセスできません
私のコードは以下の通りです public CountryStandards() { InitializeComponent(); try { FillPageControls(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Country Standards", MessageBoxButton.OK, MessageBoxImage.Error); } } /// <summary> /// Fills the page controls. /// </summary> private void FillPageControls() { popUpProgressBar.IsOpen = true; lblProgress.Content = "Loading. Please wait..."; progress.IsIndeterminate = true; worker = new BackgroundWorker(); worker.DoWork += …

12
ファイルを読み書きする最も簡単な方法
C#でファイル(バイナリではなくテキストファイル)を読み書きするには、さまざまな方法があります。 私はプロジェクトで多くのファイルを扱うので、簡単でコードの使用量が最も少ないものが必要です。必要なのはstring、stringsの読み取りと書き込みだけなので、何かが必要です。
341 c#  .net  string  file  file-io 

15
新しいスレッドで簡単なコードを実行するにはどうすればよいですか?
コードの実行中にフォームがフリーズする(10秒程度)ため、GUIとは異なるスレッドで実行する必要があるコードが少しあります。 これまでに新しいスレッドを作成したことがないと仮定します。これをC#で実行し、.NET Framework 2.0以降を使用する方法の簡単な基本例は何ですか?
340 c#  .net  multithreading 

13
C#を使用したURLエンコーディング
VBフォーラムソフトウェアにPOSTリクエストを送信し、(Cookieやその他を設定せずに)ユーザーをログインさせるアプリケーションがあります。 ユーザーがログインしたら、ローカルマシンにパスを作成する変数を作成します。 c:\ tempfolder \ date \ username 問題は、一部のユーザー名が "Illegal chars"例外をスローしていることです。たとえば、ユーザー名がmas|fenix例外だった場合、例外がスローされます。 Path.Combine( _ Environment.GetFolderPath(System.Environment.SpecialFolder.CommonApplicationData), _ DateTime.Now.ToString("ddMMyyhhmm") + "-" + form1.username) 文字列から削除したくありませんが、ユーザー名のフォルダーがFTP経由でサーバーに作成されます。そして、これは私の2番目の質問につながります。サーバー上にフォルダーを作成している場合、「不正な文字」を残してもよいですか?サーバーがLinuxベースであり、Linuxがそれを受け入れるかどうかはわかりません。 編集:URLエンコードは私が望むものではないようです...これが私がやりたいことです: old username = mas|fenix new username = mas%xxfenix ここで、%xxは、ASCII値、または文字を簡単に識別できるその他の値です。
340 c#  .net  urlencode 


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