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

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


8
C#でリストが空かどうかを確認します[終了]
休業。この質問には詳細または明快さが必要です。現在、回答を受け付けていません。 この質問を改善してみませんか?詳細を追加し、この投稿を編集して問題を明確にしてください。 6年前休業。 この質問を改善する データベースから読み込まれたオブジェクトのリストがあります。リストが空の場合はエラーメッセージを表示し、それ以外の場合はグリッドビューを表示する必要があります。 List<T>C#でa が空かどうかを確認するにはどうすればよいですか?

8
LINQステートメントは「foreach」ループよりも高速ですか?
私はメッシュレンダリングマネージャーを作成していて、同じシェーダーを使用するすべてのメッシュをグループ化してから、そのシェーダーパスでこれらをレンダリングすることをお勧めします。 現在foreachループを使用していますが、LINQを使用するとパフォーマンスが向上するかどうか疑問に思いますか?
123 c#  performance  linq  foreach 

2
C#6の「静的」機能を使用するにはどうすればよいですか?
C#6の新機能のいくつか、具体的には 「静的を使用する」を調べています。 using staticは、種類の静的メンバーをスコープに直接インポートできる新しい種類のusing句です。 (ブログ投稿の下部) 私が見つけたいくつかのチュートリアルによると、アイデアは次のとおり です: using System; class Program { static void Main() { Console.WriteLine("Hello world!"); Console.WriteLine("Another message"); } } Console静的クラスを使用する新しいC#6機能を使用して、繰り返しステートメントを省略できます。 using System.Console; // ^ `.Console` added. class Program { static void Main() { WriteLine("Hello world!"); WriteLine("Another message"); } // ^ `Console.` removed. } しかし、これは私のために働いているようには見えません。次のように言って、usingステートメントでエラーが発生します。 「 ' using …

7
ForEachで非同期を使用するにはどうすればよいですか?
ForEachを使用するときに非同期を使用することは可能ですか?以下は私が試しているコードです: using (DataContext db = new DataLayer.DataContext()) { db.Groups.ToList().ForEach(i => async { await GetAdminsFromGroup(i.Gid); }); } エラーが発生します: 「非同期」という名前は現在のコンテキストに存在しません usingステートメントが囲まれているメソッドは、非同期に設定されます。
123 c#  async-await 

10
null値をチェックする適切な方法は何ですか?
null結合型の演算子にデフォルト値を簡単に割り当てることができるため、null結合演算子が大好きです。 int y = x ?? -1; それは素晴らしいことですが、で簡単なことをする必要がある場合は例外ですx。たとえば、を確認したい場合、Session通常はもっと冗長なものを書く必要があります。 私はこれを行うことができればいいのに: string y = Session["key"].ToString() ?? "none"; しかし.ToString()、nullチェックの前にが呼び出されるため、Session["key"]nullの場合は失敗するため、これはできません。私はこれをやる: string y = Session["key"] == null ? "none" : Session["key"].ToString(); それは機能し、私の意見では、3行の代替よりも優れています。 string y = "none"; if (Session["key"] != null) y = Session["key"].ToString(); それがうまくいくとしても、もっと良い方法があるかどうか私はまだ興味があります。私がいつも何Session["key"]回参照しなければならないかは関係ありません。1回はチェックのため、もう1回は割り当てのためです。何か案は?

13
コンパイル時に1 + 2 + 3 +…+ 1000を計算するようにC#、C ++、またはJavaコンパイラを駆動する方法は?
最近のインタビューで、私は本当に奇妙な質問をされました。インタビュアーは、コンパイラー機能だけを使用して1 + 2 + 3 + ... + 1000をどのように計算できるかと尋ねました。つまり、プログラムを作成して実行することはできませんが、コンパイル中にこの合計を計算し、コンパイルが完了したときに結果を出力するようにコンパイラーを駆動できるプログラムを作成する必要があります。ヒントとして、私はコンパイラーのジェネリックとプリプロセッサー機能を使用できると私に言った。C ++、C#、またはJavaコンパイラを使用できます。何か案は??? この質問は、ここでループを行わずに合計を計算することとは関係ありません。また、合計はコンパイル時に計算する必要があることに注意してください。C ++コンパイラ指令を使用して結果だけを出力することはできません。 投稿された回答の詳細を読んで、C ++テンプレートを使用してコンパイル中に問題を解決することをメタプログラミングと呼びます。これは、C ++言語の標準化の過程でErwin Unruh博士によって偶然発見された手法です。このトピックの詳細については、メタプログラミングのWikiページをご覧ください。Javaアノテーションを使用してJavaでプログラムを作成することは可能であるようです。あなたは見てとることができmaressの下に答えを。 C ++でのメタプログラミングに関する素晴らしい本がこれです。興味があれば見てみる価値があります。 有用なC ++メタプログラミングライブラリは、BoostのMPL this linkです。


19
LINQでコレクションを「n」個の部分に分割しますか?
nLINQでコレクションをパーツに分割する良い方法はありますか?もちろん、必ずしも均等ではありません。 つまり、コレクションをサブコレクションに分割します。サブコレクションにはそれぞれ要素のサブセットが含まれており、最後のコレクションを不規則にすることができます。
122 c#  .net  linq  data-structures 

28
列挙型をWinFormsコンボボックスにバインドし、それを設定する
多くの人が、WinFormsでコンボボックスに列挙型をバインドする方法の質問に答えています。こんな感じです: comboBox1.DataSource = Enum.GetValues(typeof(MyEnum)); しかし、表示する実際の値を設定することができなければ、それはかなり役に立ちません。 私が試してみました: comboBox1.SelectedItem = MyEnum.Something; // Does not work. SelectedItem remains null 私も試しました: comboBox1.SelectedIndex = Convert.ToInt32(MyEnum.Something); // ArgumentOutOfRangeException, SelectedIndex remains -1 誰もこれを行う方法について何かアイデアがありますか?
122 c#  .net  winforms  combobox  enums 

30
Console.ReadLine()にタイムアウトを追加するにはどうすればよいですか?
ユーザーに提供したいコンソールアプリがあります にプロンプ​​トに応答するためのx秒をます。一定時間が経過しても入力がない場合、プログラムロジックは続行されます。タイムアウトは空の応答を意味すると想定しています。 これに取り組む最も簡単な方法は何ですか?
122 c#  .net  console  timeout  io 

16
LINQでリストが空かどうかを確認する
リストが空かどうかを判断するための「速度」と読みやすさの両方を考慮した「最良の」方法は何ですか?リストがタイプIEnumerable<T>で、Countプロパティがない場合でも。 今、私はこれの間で投げ合っています: if (myList.Count() == 0) { ... } この: if (!myList.Any()) { ... } 2番目のオプション(IEnumerableの場合)がすべてのアイテムにアクセスしてカウントを返す必要があるのに対し、2番目のオプションは最初のアイテムが見つかるとすぐに結果が返されるため、より高速であると思います。 そうは言っても、2番目のオプションはあなたにとって読みやすいように見えますか?どっちがいい?または、空のリストをテストするためのより良い方法を考えられますか? Edit @lassevkの応答は、最も論理的であるようであり、可能な場合はキャッシュされたカウントを使用するための実行時チェックのビットと相まって、次のようになります。 public static bool IsEmpty<T>(this IEnumerable<T> list) { if (list is ICollection<T>) return ((ICollection<T>)list).Count == 0; return !list.Any(); }
122 c#  .net  linq  list 

8
ワークフローするかしないか?
私は、軽量保険金請求システムの開発を開始しようとしている開発者チームの責任者です。システムには多くの手動タスクとビジネスワークフローが含まれており、Windowsワークフロー(.NET 4.0)の使用を検討しています。 ビジネスドメインの例は次のとおりです。保険契約者は、コンタクトセンターに電話して、申し立てを提出します。この「イベント」は、手動で並行して実行される2つのサブタスクを起動し、完了するまでに長い時間がかかる場合があります。 顧客の不正をチェック–オペレーターが手動でさまざまなクレジット会社に電話をかけ、不正な顧客の可能性をチェックして評価します。ここから、サブタスクはいくつかのサブステータス(進行中のチェック、参照チェックの失敗、参照チェックの合格など)を入力できます。 修理センターへのアイテムの送信–保険契約者が申し立てを提出したアイテムが修理センターに送られ、修理される手動プロセス。ここから、サブタスクはいくつかのサブステータス(修復待ち、進行中、修復済み、投稿済みなど)を入力できます。クレームは、各サブタスクのステータスが事前定義されたステータス(ビジネスルールに基づく)に達した場合にのみ続行できます。 表面的には、ワークフローは確かに最良のテクノロジーの選択のようです。しかし、私はWF 4.0の使用に関していくつかの懸念を持っています。 スキルセット–平均的な開発者スキルセットを見ると、ワークフローを理解または知っている開発者はあまり見かけません。 保守性– WF 4.0プロジェクトに対するコミュニティ内のサポートはほとんどないようで、スキルセットの欠如と相まって、保守性に関する懸念が生じています。 参入障壁–私は、Windowsワークフローの学習曲線が急であり、必ずしも簡単に習得できるとは限らないと感じています。 新製品–ワークフローが.NET 4.0用に完全に書き直されたので、私はこの製品を第1世代の製品と見なしており、必要な安定性がない可能性があります。 評判–以前のバージョンのワークフローは十分に評価されておらず、開発が困難であると考えられ、ビジネスへの関心が低かった。 私の質問は、この状況ではWindowsワークフロー(WF)4.0を使用する必要があるか、それとも代替テクノロジー(Simple State Machineなど)を使用するか、それともより優れたワークフローエンジンを使用するかということです。

3
C#で(単純な)トレースを追加する方法 [閉まっている]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 3年前休業。 この質問を改善する 私が書いているC#アプリケーションにいくつかのトレースを導入したいと思います。悲しいことに、私はそれがどのように機能するか本当に本当に思い出せないので、参照品質を備えたチュートリアルを時々チェックしたいと思います。以下を含める必要があります。 TraceListenerを登録するために追加するApp.config / Web.configもの 呼び出しアプリケーションでそれを設定する方法 私たちがリンクすべきuberチュートリアルを知っていますか? 編集:グレン・スレイブンは私を正しい方向に向けました。これを内部のApp.config / Web.configに追加します<configuration/>。 <system.diagnostics> <trace autoflush="true"> <listeners> <add type="System.Diagnostics.TextWriterTraceListener" name="TextWriter" initializeData="trace.log" /> </listeners> </trace> </system.diagnostics> これにより、TextWriterTraceListener送信先のすべてをキャッチするが追加されますTrace.WriteLine。 編集: @DanEsparzaはTrace.TraceInformation、Trace.TraceWarningと同じ方法でメッセージをフォーマットできるので、のTrace.TraceError代わりにを使用する必要があることを指摘しTrace.WriteLineましたstring.Format。 ヒント:あなたは任意のリスナーを追加しない場合、あなたはまだのSysinternalsのDebugViewプログラム(とトレース出力を見ることができますDbgview.exe):http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx
122 c#  trace 

11
インターフェースを明示的に実装する理由
それでは、インターフェイスを明示的に実装するための適切なユースケースは何でしょうか? それは、クラスを使用している人々がインテリセンスでそれらのメソッド/プロパティをすべて見る必要がないようにするためだけですか?
122 c#  interface 

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