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

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

26
foreachループ、ループの最後の反復を決定
foreachループがあり、最後の項目がから選択されたときにいくつかのロジックを実行する必要がありますList。例: foreach (Item result in Model.Results) { //if current result is the last item in Model.Results //then do something in the code } forループとカウンターを使用せずに、どのループが最後かを知ることはできますか?
233 c#  asp.net  foreach 



11
コレクションがnullの場合、.NET foreachループがNullRefExceptionをスローするのはなぜですか?
だから私はこの状況に頻繁に遭遇しDo.Something(...)ます...そこでは次のようにnullコレクションを返します: int[] returnArray = Do.Something(...); 次に、このコレクションを次のように使用してみます。 foreach (int i in returnArray) { // do some more stuff } 私はただ知りたいのですが、なぜforeachループがnullコレクションで動作しないのですか?反復が0の場合、nullコレクションで実行されるのは理にかなっているようです。代わりにがスローされますNullReferenceException。なぜこれが起こり得るのか誰でも知っていますか? APIが何を返すのかが明確でないAPIを使用しているので、これは面倒ですif (someCollection != null)。 編集:をforeach使用して説明していただきありがとうございますGetEnumerator。取得する列挙子がない場合、foreachは失敗します。言語/ランタイムが列挙子を取得する前にnullチェックを実行できない、または実行できない理由を私は尋ねていると思います。動作はまだ明確に定義されているように思えます。
231 c#  .net 

18
小数点を含む文字列をdoubleに解析するにはどうすればよいですか?
文字列"3.5"をdoubleのように解析したい。しかしながら、 double.Parse("3.5") 35と double.Parse("3.5", System.Globalization.NumberStyles.AllowDecimalPoint) をスローしFormatExceptionます。 これで、私のコンピューターのロケールはドイツ語に設定されました。コンマが小数点として使用されます。double.Parse()それで何かをし"3,5"、入力として期待する必要があるかもしれませんが、私にはわかりません。 現在のロケールで指定されているとおりにフォーマットされているかどうかにかかわらず、10進数を含む文字列を解析するにはどうすればよいですか?
231 c#  string  parsing  double 

11
ミリ秒の精度でDateTime.Nowを取得します。
ミリ秒の精度で実際の時間のタイムスタンプを正確に作成するにはどうすればよいですか? 16.4.2013 9:48:00:123のようなものが必要です。これは可能ですか?1秒あたり10回値をサンプリングするアプリケーションがあり、それらをグラフに表示する必要があります。

12
非同期メソッドを同期的に呼び出す
私にはasync方法があります: public async Task<string> GenerateCodeAsync() { string code = await GenerateCodeService.GenerateCodeAsync(); return code; } このメソッドを同期メソッドから呼び出す必要があります。 GenerateCodeAsyncこれを同期的に機能させるために、メソッドを複製せずにこれを行うにはどうすればよいですか? 更新 しかし、合理的な解決策は見つかりませんでした。 しかし、私はHttpClientすでにこのパターンを実装していることがわかります using (HttpClient client = new HttpClient()) { // async HttpResponseMessage responseAsync = await client.GetAsync(url); // sync HttpResponseMessage responseSync = client.GetAsync(url).Result; }

12
C#で文字列に改行を追加する
紐があります。 string strToProcess = "fkdfdsfdflkdkfk@dfsdfjk72388389@kdkfkdfkkl@jkdjkfjd@jjjk@"; 文字列に「@」記号が出現するたびに改行を追加する必要があります。 私の出力はこのようになるはずです fkdfdsfdflkdkfk@ dfsdfjk72388389@ kdkfkdfkkl@ jkdjkfjd@ jjjk@
230 c#  string 

10
Response.RedirectでSystem.Threading.ThreadAbortExceptionが発生するのはなぜですか?
Response.Redirect(...)を使用してフォームを新しいページにリダイレクトすると、エラーが発生します。 タイプ 'System.Threading.ThreadAbortException'の最初のチャンス例外がmscorlib.dllで発生しまし たタイプ 'System.Threading.ThreadAbortException'の例外がmscorlib.dllで発生しましたが、ユーザーコードでは処理されませんでした 私の理解では、このエラーの原因は、ウェブサーバーがresponse.redirectが呼び出されたページの残りの部分を中止したことです。 Response.RedirectendResponse という2番目のパラメーターを追加できることはわかっています。endResponseをTrueに設定した場合でもエラーが発生しますが、Falseに設定した場合は取得しません。それは、リダイレクトされたページの残りの部分がWebサーバーで実行されていることを意味しますが、これは控えめに言っても非効率的なようです。これを行うより良い方法はありますか?以外の何か、Response.Redirectまたは私が取得しない場所で古いページの読み込みを強制的に停止する方法はありThreadAbortExceptionますか?
230 c#  asp.net  .net-3.5 

12
'var'を使用するとパフォーマンスに影響がありますか?
以前、私はなぜvarキーワードが多くの例で見られるのかについて質問しましたが、匿名型にのみ必要であるにもかかわらず、それでもコードを「より速く」/「より簡単に」書くために使用されるという答えを得ました。 続いて、このリンク(「C#3.0 -ヴァールされていないOBJEC」) IソーvarIL内の正しい種類までコンパイルされる(あなたは記事下のほぼ中間に表示されます)。 私の質問は、もしあれば、ILコードがvarキーワードtake をどれだけ使用するかであり、どこで使用しても、コードのパフォーマンスを測定可能なレベルに近づけることになるでしょうか?
230 c#  performance  variables  var 

4
Dependency Inject(DI)「フレンドリーな」ライブラリ
私は、いくつかの異なる高水準関数を持つC#ライブラリの設計について考えています。もちろん、これらの高水準関数は、可能な限りSOLIDクラスの設計原則を使用して実装されます。そのため、コンシューマが定期的に直接使用することを目的としたクラスと、より一般的な「エンドユーザー」クラスの依存関係である「サポートクラス」が存在する可能性があります。 問題は、ライブラリを設計する最良の方法は何ですか? DIに依存しない-1つまたは2つの一般的なDIライブラリ(StructureMap、Ninjectなど)に基本的な「サポート」を追加するのは妥当なようですが、コンシューマが任意のDIフレームワークでライブラリを使用できるようにしたいと思います。 非DI使用可能-ライブラリのコンシューマーがDIを使用していない場合でも、ライブラリは可能な限り使いやすく、これらの「重要でない」依存関係をすべて作成するためにユーザーが実行する必要がある作業量を削減する必要があります。彼らが使いたい「本物の」クラス。 私の現在の考えは、一般的なDIライブラリー(たとえば、StructureMapレジストリー、Ninjectモジュール)にいくつかの「DI登録モジュール」、および非DIであり、これらのいくつかのファクトリーへのカップリングを含むセットまたはファクトリー・クラスを提供することです。 考え?

6
[DataContract]の名前空間
[DataContract]および[DataMember]要素に使用する名前空間が見つかりません。私が見つけたものによると、以下を追加することで十分だと思われますが、私の場合はそうではありません。 using System; using System.Runtime.Serialization; これが私のコードのスニペットです: using System; using System.Runtime.Serialization; namespace MyNamespace { [DataContract] public class Tuple<T1, T2> { // A custom implementation of a Tuple //... //... } } そして私が得るエラー: タイプまたは名前空間名 'DataContract'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?) 適切な名前空間を使用していませんか?
230 c#  wcf  datacontract 

10
.NET WebClientオブジェクトのタイムアウトを変更する方法
クライアントのデータをローカルマシンに(プログラムで)ダウンロードしようとしていますが、クライアントのWebサーバーが非常に遅いため、WebClientオブジェクトでタイムアウトが発生しています。 これが私のコードです: WebClient webClient = new WebClient(); webClient.Encoding = Encoding.UTF8; webClient.DownloadFile(downloadUrl, downloadFile); このオブジェクトに無限のタイムアウトを設定する方法はありますか?それとも、これを行う別の方法の例を誰かが私に手伝ってもらえませんか? URLはブラウザで正常に機能します-表示されるのに約3分かかります。
230 c#  .net  file  download  webclient 


10
コンストラクターにパラメーターが必要なジェネリック型のインスタンスを作成しますか?
BaseFruitを受け入れるコンストラクターがある場合、int weightこのようなジェネリックメソッドで果物の一部をインスタンス化できますか? public void AddFruit<T>()where T: BaseFruit{ BaseFruit fruit = new T(weight); /*new Apple(150);*/ fruit.Enlist(fruitManager); } コメントの後ろに例が追加されています。BaseFruitパラメーターなしのコンストラクターを指定し、メンバー変数を使用してすべてを入力する場合にのみ、これを行うことができるようです。私の実際のコードでは(果物についてではなく)、これはかなり実用的ではありません。 -更新- だから、それはそれではどのような方法でも制約によって解決できないようです。回答から3つの候補ソリューションがあります。 工場パターン 反射 活性剤 反射は最もクリーンなものだと思う傾向がありますが、他の2つを決定することはできません。
230 c#  .net  generics 

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