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

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

1
C#8の配列スライス機能からの新しい帽子オペレーターのインデックスが0から開始しないのはなぜですか?
C#8.0では、配列をスライスする便利な方法が導入されています- 公式のC#8.0ブログポストを参照してください。 配列の最後の要素にアクセスする構文は次のとおりです int value[] = { 10, 11, 12, 13 }; int a = value[^1]; // 13 int b = value[^2]; // 12 要素に逆方向にアクセスするためのインデックス付けが、0ではなく1から始まるのはなぜですか。これには技術的な理由がありますか?
156 c#  arrays  indexing  c#-8.0 

8
「警告CS4014:この呼び出しが待機されていないため、現在のメソッドの実行が継続しています...」の抑制
これは、「待機せずにC#で非同期メソッドを安全に呼び出す方法」の複製ではありません。 次の警告を適切に抑制するにはどうすればよいですか? 警告CS4014:この呼び出しは待機されていないため、現在のメソッドの実行は、呼び出しが完了する前に続行されます。呼び出しの結果に「待機」演算子を適用することを検討してください。 簡単な例: static async Task WorkAsync() { await Task.Delay(1000); Console.WriteLine("Done!"); } static async Task StartWorkAsync() { WorkAsync(); // I want fire-and-forget // more unrelated async/await stuff here, e.g.: // ... await Task.Delay(2000); } 私が試したが好きではなかったもの: static async Task StartWorkAsync() { #pragma warning disable 4014 WorkAsync(); // I want fire-and-forget …
156 c#  async-await 


11
SecureStringをSystem.Stringに変換する方法は?
それ以外に System.Stringを作成してSecureStringのセキュリティを解除することに関するすべての予約は、どうすれば実行できますか? 通常のSystem.Security.SecureStringをSystem.Stringに変換するにはどうすればよいですか? SecureStringに精通している多くの方は、SecureStringを通常の.NET文字列に変換しないでください。これにより、すべてのセキュリティ保護が削除されるためです。 私が知っています。しかし、今のところ、私のプログラムはとにかく通常の文字列ですべてを行います。私はそのセキュリティを強化しようとしています。私にSecureStringを返すAPIを使用するつもりはありませんが、。 Marshal.SecureStringToBSTRは知っていますが、そのBSTRを取得してSystem.Stringを作成する方法がわかりません。 なぜ私がこれをしたいのかを知りたいと思っている人のために、ユーザーからパスワードを取得し、それをHTMLフォームPOSTとして送信して、ユーザーをWebサイトにログインさせます。したがって、これは実際には、管理された暗号化されていないバッファーで行う必要があります。管理されていない、暗号化されていないバッファにアクセスできたとしても、ネットワークストリームにバイト単位のストリーム書き込みを行うことができ、それによってパスワードが安全に保たれることを願っています。これらのシナリオの少なくとも1つに対する回答を期待しています。
156 c#  .net  security  encryption 




8
別の非同期メソッドの代わりにイベントを待つことは可能ですか?
私のC#/ XAML Metroアプリには、長時間実行プロセスを開始するボタンがあります。したがって、推奨されるように、UIスレッドがブロックされないようにするためにasync / awaitを使用しています。 private async void Button_Click_1(object sender, RoutedEventArgs e) { await GetResults(); } private async Task GetResults() { // Do lot of complex stuff that takes a long time // (e.g. contact some web services) ... } 場合によっては、GetResults内で発生する処理が続行する前に、追加のユーザー入力が必要になります。簡単にするために、ユーザーが「続行」ボタンをクリックする必要があるとしましょう。 私の質問は、別のボタンのクリックなどのイベントを待機するようにGetResultsの実行を一時停止するにはどうすればよいですか? ここに私が探しているものを達成するための醜い方法があります:続行するためのイベントハンドラー」ボタンはフラグを設定します... private bool _continue = false; private void …

29
パスへのアクセスが拒否されるのはなぜですか?
ファイルを削除しようとすると問題が発生しますが、例外が発生します。 if (result == "Success") { if (FileUpload.HasFile) { try { File.Delete(Request.PhysicalApplicationPath + app_settings.login_images + txtUploadStatus.Text); string filename = Path.GetFileName(btnFileUpload.FileName); btnFileUpload.SaveAs(Request.PhysicalApplicationPath + app_settings.login_images + filename); } catch (Exception ex) { Message(ex.ToString()); } } } また、削除しようとしているフォルダがネットワークサービスを完全に制御できることにも注意してください。 完全な例外メッセージは次のとおりです。 System.UnauthorizedAccessException:パス 'C:\ Users \ gowdyn \ Documents \ Visual Studio 2008 \ Projects \ …

18
文字列の一部を位置で置き換える方法は?
私はこの文字列を持っています: ABCDEFGHIJ 位置4から位置5までを文字列に置き換える必要があります ZX 次のようになります。 ABCZXFGHIJ しかし、一緒に使用しないでくださいstring.replace("DE","ZX")-私は位置で使用する必要があります どうすればできますか?
155 c#  string  replace 

8
InnerException全体を表示する適切な方法は何ですか?
私の完全を示す適切な方法は何ですかInnerException。 私の一部のInnerExceptionsには別の例外がInnerExceptionあり、かなり深く進んでいることがわかりました。 ウィルInnerException.ToString()私のために仕事をするか、私はをループする必要がありますInnerExceptionsし、構築StringしてStringBuilder?


3
MVC4バンドルの{version}ワイルドカード
MVC 4にはバンドルがあります。バンドルを定義するときに、フォルダー内のすべてのファイルに*のようなワイルドカードを使用できます。 以下の例では、-{version}どういう意味ですか? public static void RegisterBundles(BundleCollection bundles) { bundles.Add(new ScriptBundle("~/bundles/jquery").Include( "~/Scripts/jquery-{version}.js")); }

10
C#での浮動小数点演算は一貫していますか?できますか?
いいえ、これは「なぜ(1 / 3.0)* 3!= 1なのか」という別の質問ではありません。 最近、浮動小数点についてよく読んでいます。具体的には、同じ計算が異なるアーキテクチャまたは最適化設定で異なる結果をもたらす方法です。 これは、リプレイを保存する、または(サーバークライアントではなく)ピアツーピアネットワーク化されたビデオゲームの問題であり、プログラムを実行するたびにすべてのクライアントがまったく同じ結果を生成することに依存します。浮動小数点計算は、異なるマシン(または同じマシンでも!)で劇的に異なるゲーム状態につながる可能性があります。 これは、主に一部のプロセッサ(つまりx86)が倍の拡張精度を使用するため、IEEE-754に「従う」プロセッサの間でも発生します。つまり、80ビットのレジスタを使用してすべての計算を行い、64ビットまたは32ビットに切り捨てて、計算に64ビットまたは32ビットを使用するマシンとは丸めの結果が異なります。 オンラインでこの問題のいくつかの解決策を見てきましたが、すべてC ++ではなくC ++向けです。 (Windows)、(Linux?)、または(BSD)をdouble使用して、倍精度拡張モードを無効にします(すべての計算でIEEE-754 64ビットを使用し_controlfp_sます)。_FPU_SETCWfpsetprec 常に同じコンパイラーを同じ最適化設定で実行し、すべてのユーザーが同じCPUアーキテクチャーを持っている必要があります(クロスプラットフォームの遊びはありません)。私の「コンパイラ」は実際にはJITであるため、プログラムを実行するたびに異なる最適化が行われる可能性があります、これは可能ではないと思います。 固定小数点演算を使用しfloat、double完全に回避します。decimalこの目的のためにSystem.Math機能しますが、はるかに遅くなり、ライブラリ関数のどれもそれをサポートしません。 それで、これはC#の問題でもありますか? (Monoではなく)Windowsのみをサポートする場合はどうなりますか? もしそうなら、私のプログラムを通常の倍精度で実行させる方法はありますか? そうでない場合、浮動小数点計算の一貫性を保つのに役立つライブラリはありますか?

11
C#でフラグを比較する方法は?
以下にフラグ列挙型があります。 [Flags] public enum FlagTest { None = 0x0, Flag1 = 0x1, Flag2 = 0x2, Flag3 = 0x4 } ifステートメントをtrueに評価することはできません。 FlagTest testItem = FlagTest.Flag1 | FlagTest.Flag2; if (testItem == FlagTest.Flag1) { // Do something, // however This is never true. } どうすればこれを実現できますか?
155 c#  .net  enums  attributes  flags 

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