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

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

4
すべてのサーバー側コードに対してConfigureAwaitを呼び出すベストプラクティス
サーバー側コード(つまり一部ApiController)があり、関数が非同期であるため(それらが返さTask<SomeObject>れる場合)、呼び出す関数を待機するときは常にベストプラクティスと見なされますConfigureAwait(false)か? スレッドコンテキストを元のスレッドコンテキストに戻す必要がないため、パフォーマンスが向上することを読みました。ただし、ASP.NET Web Apiでは、リクエストが1つのスレッドで受信され、関数ConfigureAwait(false)の最終結果を返すときに別のスレッドに入る可能性がある関数と呼び出しを待機している場合ApiController。 私が話していることの例を以下に入力しました: public class CustomerController : ApiController { public async Task<Customer> Get(int id) { // you are on a particular thread here var customer = await SomeAsyncFunctionThatGetsCustomer(id).ConfigureAwait(false); // now you are on a different thread! will that cause problems? return customer; } }


17
C#で例外をキャッチして再スローする理由
記事C#-シリアル化可能なDTO上のデータ転送オブジェクトを見ています。 記事には次のコードが含まれています。 public static string SerializeDTO(DTO dto) { try { XmlSerializer xmlSer = new XmlSerializer(dto.GetType()); StringWriter sWriter = new StringWriter(); xmlSer.Serialize(sWriter, dto); return sWriter.ToString(); } catch(Exception ex) { throw ex; } } 記事の残りの部分は正気で妥当なように見えますが(noobにとって)、そのtry-catch-throwはWtfExceptionをスローします... これは、例外をまったく処理しないこととまったく同じではありませんか? エルゴ: public static string SerializeDTO(DTO dto) { XmlSerializer xmlSer = new XmlSerializer(dto.GetType()); StringWriter sWriter = new …


17
==とEquals()のC#の違い
Silverlightアプリケーションに2つの文字列を比較する条件があります。何らかの理由で、それを使用する==とfalseが.Equals()返され、trueが返されます。 これがコードです: if (((ListBoxItem)lstBaseMenu.SelectedItem).Content.Equals("Energy Attack")) { // Execute code } if (((ListBoxItem)lstBaseMenu.SelectedItem).Content == "Energy Attack") { // Execute code } これがなぜ起こっているのかについて何か理由がありますか?
548 c#  .net  equals 


13
C#でジェネリックメソッドからNULLを返すにはどうすればよいですか?
私はこの(ダミー)コードを持つジェネリックメソッドを持っています(はい、IListに述語があることを認識していますが、私のコードはIListを使用していませんが、他のいくつかのコレクションを使用しています。とにかくこれは質問には関係ありません...) static T FindThing<T>(IList collection, int id) where T : IThing, new() { foreach T thing in collecion { if (thing.Id == id) return thing; } return null; // ERROR: Cannot convert null to type parameter 'T' because it could be a value type. Consider using 'default(T)' instead. } これは私にビルドエラーを与えます …
546 c#  generics 

7
Xamarin C#とJavaで記述されたAndroidアプリのパフォーマンスを比較するベンチマーク(コードと結果)を持っている人はいますか?[閉まっている]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか? Stack Overflowのトピックとなるように質問を更新します。 2年前休業。 XamarinがAndroidでのMonoの実装とC#でコンパイルされたアプリはJavaコードよりも速いと主張しました。そのような主張を確認するために、誰かが異なるAndroidプラットフォームで非常に類似したJavaおよびC#コードで実際のベンチマークを実行し、コードと結果を投稿できましたか? 2013年6月18日追加 答えがなく、他の人が行ったそのようなベンチマークを見つけることができなかったので、自分でテストすることにしました。残念ながら、私の質問は「ロック」されたままなので、これを回答として投稿することはできません。質問を編集するだけです。この質問を再度開くには投票してください。C#の場合、Xamarin.Android Ver。4.7.09001(ベータ版)。ソースコード、テストに使用したすべてのデータ、およびAPKパッケージのコンパイルはGitHubにあります。 Java:https : //github.com/gregko/TtsSetup_Java C#:https : //github.com/gregko/TtsSetup_C_sharp 他のデバイスやエミュレーターで私のテストを繰り返したい場合は、結果も知りたいです。 テストの結果 私のセンテンスエクストラクタクラスをC#に移植し(@Voice Aloud Readerアプリから)、英語、ロシア語、フランス語、ポーランド語、チェコ語の10個のHTMLファイルに対していくつかのテストを実行しました。各実行は、10個のファイルすべてに対して5回実行されました。3つの異なるデバイスと1つのエミュレータの合計時間を以下に示します。デバッグを有効にせずに、「リリース」ビルドのみをテストしました。 HTC Nexus One Android 2.3.7(API 10)-CyanogenMod ROM Java:合計時間(5実行):12361ミリ秒、ファイル読み取り合計:13304ミリ秒 C#:総計時間(5回の実行):17504ミリ秒、ファイル読み取り合計:17956ミリ秒 Samsung Galaxy S2 SGH-I777(Android 4.0.4、API 15)-CyanogenMod ROM Java:合計時間(5実行):8947ミリ秒、ファイル読み取り合計:9186ミリ秒 C#:総計時間(5実行):9884ミリ秒、ファイル読み取り合計:10247ミリ秒 Samsung GT-N7100(Android 4.1.1 JellyBean、API 16)-Samsung ROM Java:合計時間(5回の実行):9742ミリ秒、ファイル読み取り合計:10111ミリ秒 C#:総時間(5回の実行):10459ミリ秒、ファイル読み取りの合計:10696ミリ秒 エミュレータ-インテル(Android 4.2、API 17) Java:合計時間(5実行):2699ミリ秒、ファイル読み取り合計:3127ミリ秒 …
544 c#  java  android  xamarin  dot42 


5
奇妙なnull融合演算子のカスタムの暗黙的な変換動作
注:これはRoslynで修正されたようです 私の答えを書くときにこの質問は生まれたこの1の関連性について語る、nullで合体演算子。 念のため、null融合演算子の考え方は、フォームの式 x ?? y 最初にを評価しx、次に: の値xがnullの場合、y評価され、それが式の最終結果になります 値があればx非ヌルである、yされていない評価され、値がxのコンパイル時の型に変換した後、発現の最終的な結果であり、y必要に応じて 今、通常、変換の必要はありません、またはそれは、非NULL可能1にNULL可能タイプからだけだ-通常のタイプが同じである、または単に(と言う)からint?にint。ただし、独自の暗黙の変換演算子を作成でき、それらは必要に応じて使用されます。 の単純なケースではx ?? y、奇妙な動作は見たことがありません。しかし、(x ?? y) ?? z私はいくつかの混乱した行動を見ています。 以下は短いが完全なテストプログラムです-結果はコメントにあります: using System; public struct A { public static implicit operator B(A input) { Console.WriteLine("A to B"); return new B(); } public static implicit operator C(A input) { Console.WriteLine("A to C"); return new …

16
宣言型プログラミングと命令型プログラミングの違いは何ですか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 2年前休業。 私は私にいくつかの光を当てるであろう宣言的および命令的プログラミングの定義を探してウェブを検索してきました。しかし、私が見つけたいくつかのリソースで使用されている言語は、たとえばWikipediaで、気が遠くなるようなものです。誰かがこのテーマに何らかの視点をもたらすかもしれない実際の例を(C#で)持っている人はいますか?

27
.NETでの2つのバイト配列の比較
どうすればこれを速くできますか? 確かに私はこれを行うことができます: static bool ByteArrayCompare(byte[] a1, byte[] a2) { if (a1.Length != a2.Length) return false; for (int i=0; i<a1.Length; i++) if (a1[i]!=a2[i]) return false; return true; } しかし、私はBCL関数、またはこれを行うための高度に最適化された実証済みの方法を探しています。 java.util.Arrays.equals((sbyte[])(Array)a1, (sbyte[])(Array)a2); うまく動作しますが、x64で動作するようには見えません。 ここで私の超高速の答えに注意してください。
541 c#  .net  arrays  performance  j# 

22
LINQの左外部結合
join-on-equals-into句を使用せずにC#LINQでオブジェクトに左外部結合を実行する方法 where句でそれを行う方法はありますか?正しい問題:内部結合は簡単で、このような解決策があります List<JoinPair> innerFinal = (from l in lefts from r in rights where l.Key == r.Key select new JoinPair { LeftId = l.Id, RightId = r.Id}) しかし、左外部結合には解決策が必要です。鉱山はこのようなものですが、機能していません List< JoinPair> leftFinal = (from l in lefts from r in rights select new JoinPair { LeftId = l.Id, RightId = ((l.Key==r.Key) …
539 c#  linq  join 

15
既存の静的クラスに拡張メソッドを追加できますか?
私はC#の拡張メソッドのファンですが、拡張メソッドをコンソールなどの静的クラスに追加することに成功していません。 たとえば、「WriteBlueLine」と呼ばれる拡張機能をコンソールに追加したい場合は、次のようにします。 Console.WriteBlueLine("This text is blue"); 私はこれを、「this」パラメーターとしてConsoleを使用してローカルのパブリック静的メソッドを追加することで試してみました... public static class Helpers { public static void WriteBlueLine(this Console c, string text) { Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine(text); Console.ResetColor(); } } これはコンソールに「WriteBlueLine」メソッドを追加しませんでした...私はそれを間違っていますか?または不可能を求めますか?

4
逐語的文字列リテラルで二重引用符をエスケープできますか?
C#の逐語的文字列リテラル(@ "foo")では、バックスラッシュはエスケープとして扱われないため、二重引用符を取得するために\ "を実行しても機能しません。逐語的文字列リテラルで二重引用符を取得する方法はありますか? ? これは当然動作しません: string foo = @"this \"word\" is escaped";

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