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

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

15
メモリストリームが閉じているため、Image.Save(..)はGDI +例外をスローします
画像として保存したいバイナリデータがいくつかあります。画像を保存しようとすると、画像の作成に使用されたメモリストリームが保存前に閉じられていた場合、例外がスローされます。これを行う理由は、動的にイメージを作成しているためです。メモリストリームを使用する必要があります。 これはコードです: [TestMethod] public void TestMethod1() { // Grab the binary data. byte[] data = File.ReadAllBytes("Chick.jpg"); // Read in the data but do not close, before using the stream. Stream originalBinaryDataStream = new MemoryStream(data); Bitmap image = new Bitmap(originalBinaryDataStream); image.Save(@"c:\test.jpg"); originalBinaryDataStream.Dispose(); // Now lets use a nice dispose, etc... Bitmap2 …
108 c#  image  exception  gdi+ 

12
Enterキーを押したときにTextBoxをバインドする
デフォルトのデータバインディングTextBoxはでTwoWayありTextBox、フォーカスを失った場合にのみ、テキストをプロパティにコミットします。 ?のEnterキーを押したときにデータバインディングを実行する簡単なXAML方法はありますTextBoxか?コードビハインドでこれを行うのは非常に簡単ですが、これTextBoxが複雑な内部にあるかどうか想像してみてくださいDataTemplate。
108 c#  wpf  xaml  .net-3.5  textbox 


3
オブジェクトをnullに設定するvs Dispose()
私はCLRとGCの動作に魅了されています(C#を介してCLRを読んだり、ジョンスキートの本/投稿などを読んだりして、知識の拡大に取り組んでいます)。 とにかく、言うことの違いは何ですか: MyClass myclass = new MyClass(); myclass = null; または、MyClassにIDisposableとデストラクタを実装させ、Dispose()を呼び出すことによって? また、usingステートメント(以下など)を含むコードブロックがある場合、コードをステップ実行してusingブロックを終了すると、オブジェクトは破棄されますか、それともガベージコレクションが発生したときですか?usingブロックでDispose()を呼び出すとどうなりますか? using (MyDisposableObj mydispobj = new MyDisposableObj()) { } ストリームクラス(BinaryWriterなど)にはFinalizeメソッドがありますか?なぜそれを使いたいのですか?
108 c#  .net  disposable 

2
PropertyInfoを使用してプロパティタイプを見つける
オブジェクトツリーを動的に解析して、カスタム検証を行います。検証自体は重要ではありませんが、PropertyInfoクラスをよりよく理解したいと思います。 私はこのようなことをします、 public bool ValidateData(object data) { foreach (PropertyInfo propertyInfo in data.GetType().GetProperties()) { if (the property is a string) { string value = propertyInfo.GetValue(data, null); if value is not OK { return false; } } } return true; } 本当に今気になっているのは「プロパティが文字列の場合」だけです。PropertyInfoオブジェクトからそれがどのタイプであるかをどのように確認できますか 文字列、int、doubleなどの基本的なものを処理する必要があります。ただし、オブジェクトも処理する必要があるため、オブジェクトツリー内をさらに移動して、オブジェクト内の基本データを検証する必要がある場合は、オブジェクトにも文字列などが含まれます。 ありがとう。
108 c#  .net  reflection 

4
参照割り当てはアトミックなので、なぜInterlocked.Exchange(ref Object、Object)が必要なのですか?
私のマルチスレッドasmx Webサービスでは、少数で構成され、としてマークされた独自のタイプSystemDataのクラスフィールド_allDataがList<T>ありDictionary<T>ましたvolatile。システムデータ(_allData)はたまに更新され、別のオブジェクトを作成してそれを実行し、newDataそのデータ構造に新しいデータを入力します。完了したら、割り当てます private static volatile SystemData _allData public static bool LoadAllSystemData() { SystemData newData = new SystemData(); /* fill newData with up-to-date data*/ ... _allData = newData. } 割り当てはアトミックであり、古いデータへの参照を持つスレッドはそれを使い続け、残りは割り当て直後に新しいシステムデータを持つため、これは機能するはずです。ただし、私の同僚は、volatileキーワードと単純な割り当てを使用する代わりにInterLocked.Exchange、一部のプラットフォームでは参照割り当てがアトミックであることが保証されていないため、使用する必要があると述べました。さらに、the _allDataフィールドをとして宣言volatileすると Interlocked.Exchange<SystemData>(ref _allData, newData); 「揮発性フィールドへの参照は揮発性として扱われません」という警告が表示されますこれについて何を考えればよいですか?

3
Startは、promiseスタイルのタスクでは呼び出されない場合があります。例外が来ています
シンプルなwpfデスクトップアプリケーションを作成しています。UIにはボタンと.csファイルのようなコードがあります。 private void Button_Click_2(object sender, RoutedEventArgs e) { FunctionA(); } public void FunctionA() { Task.Delay(5000).Start(); MessageBox.Show("Waiting Complete"); } しかし、驚くべきことに、行Task.Delay(5000).Start();がスローされていInvalidOperationExceptionます: Startは、promiseスタイルのタスクでは呼び出されない場合があります。 なぜそれがこのようなものであるかを誰かが助けることができますか?
108 c#  c#-4.0  .net-4.0 

10
ASP.NET MVCカスタムエラー処理Application_Error Global.asax?
MVCアプリケーションのエラーを判別するための基本的なコードがあります。現在、私のプロジェクトで私が呼ばれるコントローラ持ってErrorアクションメソッドではHTTPError404()、HTTPError500()とGeneral()。これらはすべて文字列パラメータを受け入れますerror。以下のコードを使用または変更します。処理のためにデータをエラーコントローラーに渡すための最良/適切な方法は何ですか?できるだけ堅牢なソリューションが欲しいです。 protected void Application_Error(object sender, EventArgs e) { Exception exception = Server.GetLastError(); Response.Clear(); HttpException httpException = exception as HttpException; if (httpException != null) { RouteData routeData = new RouteData(); routeData.Values.Add("controller", "Error"); switch (httpException.GetHttpCode()) { case 404: // page not found routeData.Values.Add("action", "HttpError404"); break; case 500: // server error routeData.Values.Add("action", "HttpError500"); …

7
C#で文字列を浮動小数点数に変換する
「41.00027357629127」のような文字列を変換していて、使用しています。 Convert.ToSingle("41.00027357629127"); または float.Parse("41.00027357629127"); これらのメソッドは4.10002732E + 15を返します。 フロートに変換すると、「41.00027357629127」が必要になります。この文字列は同じでなければなりません...

12
C#で整数の配列を合計する方法
そこにあるより良い配列を反復処理よりも短い方法は? int[] arr = new int[] { 1, 2, 3 }; int sum = 0; for (int i = 0; i < arr.Length; i++) { sum += arr[i]; } 説明: プライマリが優れているということは、コードがよりクリーンであることを意味しますが、パフォーマンスの向上に関するヒントも歓迎します。(すでに述べたように:大きな配列の分割)。 それは私がキラーパフォーマンスの改善を探していたようではありません-この非常に種類の構文糖がまだ利用可能ではないのか疑問に思いました: "String.Joinがあります-int []の一体何ですか?"
108 c#  arrays  integer 



9
「yield return DoSomethingAsync()」を待つことは可能ですか?
通常のイテレーターブロック(つまり、 "yield return")は、 "async"および "await"と互換性がありませんか? これは私が何をしようとしているのかについての良い考えを与えます: async Task<IEnumerable<Foo>> Method(String [] Strs) { // I want to compose the single result to the final result, so I use the SelectMany var finalResult = UrlStrings.SelectMany(link => //i have an Urlstring Collection await UrlString.DownLoadHtmlAsync() //download single result; DownLoadHtmlAsync method will Download the url's …


8
コレクションへのAddRange
同僚から本日、コレクションに範囲を追加する方法を尋ねられました。彼はから継承するクラスを持っていCollection<T>ます。そのタイプのget-onlyプロパティがあり、すでにいくつかのアイテムが含まれています。別のコレクションのアイテムをプロパティコレクションに追加したいと考えています。どのようにしてC#3フレンドリーな方法でこれを行うことができますか (取得専用プロパティに関する制約に注意してください。これにより、Unionの実行や再割り当てなどの解決策が妨げられます。) 確かに、プロパティのforeachです。追加は機能します。ただし、- List<T>スタイルのAddRangeの方がはるかにエレガントです。 拡張メソッドを書くのは簡単です: public static class CollectionHelpers { public static void AddRange<T>(this ICollection<T> destination, IEnumerable<T> source) { foreach (T item in source) { destination.Add(item); } } } でも、ホイールを再発明しているような気がします。System.Linqまたはmorelinqで類似するものは見つかりませんでした。 悪いデザイン?追加を呼び出すだけですか?明らかなものがない?

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