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

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

9
どの暗号ハッシュ関数を選択すればよいですか?
.NETフレームワークには、6つの異なるハッシュアルゴリズムが付属しています。 MD5:16バイト(ハッシュにかかる時間500MB:1462ミリ秒) SHA-1:20バイト(1644ミリ秒) SHA256:32バイト(5618ミリ秒) SHA3​​84:48バイト(3839ミリ秒) SHA512:64バイト(3820ミリ秒) RIPEMD:20バイト(7066 ms) これらの機能はそれぞれ異なる方法で実行されます。MD5が最も速く、RIPEMDが最も遅い。 MD5には、組み込みのGuidタイプに適合するという利点があります。そして、それはタイプ3 UUIDの基礎です。SHA-1ハッシュはタイプ5 UUIDの基礎です。これにより、識別に非常に使いやすくなります。 ただし、MD5は衝突攻撃に対して脆弱です。SHA-1も脆弱ですが、程度は低くなります。 どのハッシュアルゴリズムをどの条件で使用すればよいですか? 私が答えを見て本当に興味がある特定の質問は次のとおりです。 MD5は信頼されないのですか?悪意のない意図でMD5アルゴリズムを使用し、第三者が悪意のある意図を持たない通常の状況では、すべての衝突が予想されます(2つの任意のバイト[]が同じハッシュを生成することを意味します) RIPEMDはSHA1よりどのくらい優れていますか?(より良い場合)計算が5倍遅くなりますが、ハッシュサイズはSHA1と同じです。 ファイル名(または他の短い文字列)をハッシュするときに、悪意のない衝突が発生する確率はどれくらいですか?(例:同じMD5ハッシュを持つ2つのランダムなファイル名)(MD5 / SHA1 / SHA2xxを使用)一般に、悪意のない衝突の確率はどれくらいですか? これは私が使用したベンチマークです: static void TimeAction(string description, int iterations, Action func) { var watch = new Stopwatch(); watch.Start(); for (int i = 0; i < iterations; i++) { func(); } …


5
.net 4でのasync-awaitの使用
私は現在、C#5の非同期待機機能から多くの利益を得るアプリケーションの作成を開始しています。しかし、使用するVSと非同期ランタイムのバージョンがわかりません。 OSの人気チャートを見ると、Windows XPをさらに3年間サポートする必要があります。.net 4.5は新しいバージョンのWindowsでのみ動作するようなので、.net 4.0をターゲットにする必要があります。開発マシンはWindows 7を使用しているため、新しいバージョンのVSを使用しても問題ありません。 これを行うには、まずコンパイラを選択する必要があります。 VS2010とAsyncCTP VS2012プレビュー(および最終的に到着)、ターゲットを.net 4.0に設定 Mono(2.12はasync-awaitがあるように見えますが、IDEとしてMonoDevelopよりもVSを使用するのが好きです) コード生成のバグが少ないのはどれですか。Jon Skeetのブログを見ると、VS2012プレビューはCTPよりもコードジェネレーターを使用することはありません。 さらに重要なのは、どのランタイムを使用するか? VS2012には、.net 4で使用する再配布可能な非同期ランタイムが含まれていますか? AsyncCTPランタイムを参照して、プレビューを使用してコードをコンパイルすることができました。しかし、CTPには奇妙なライセンス条件があるため、長期的なソリューションとしては適切ではないように見えます。 または、サードパーティの実装を使用する必要がありますか?たぶん、monoには1つありますか? ライブラリを配布するために、ある種のインストーラーではなく、単にアプリケーションと同じディレクトリにdllを置くことを好みます。 また、mono + Linux / MacOSで変更を加えなくてもバイナリが機能するようにしたいのですが。したがって、ランタイムは組み込みのモノ(おそらく2.12)と互換性があるか、非Windows OSでの使用を許可する必要があります。

2
C#のブール値のサイズは?本当に4バイトかかりますか?
バイトの配列とブール値を持つ2つの構造体があります。 using System.Runtime.InteropServices; [StructLayout(LayoutKind.Sequential, Pack = 4)] struct struct1 { [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] public byte[] values; } [StructLayout(LayoutKind.Sequential, Pack = 4)] struct struct2 { [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] public bool[] values; } そして次のコード: class main { public static void Main() { Console.WriteLine("sizeof array of bytes: "+Marshal.SizeOf(typeof(struct1))); Console.WriteLine("sizeof array of …
137 c#  interop 

8
Json.Netでシリアル化するときにカスタムのDateTime形式を指定する
ASP.NET Web APIを使用して一部のデータを公開するAPIを開発しています。 APIの1つで、クライアントは日付をyyyy-MM-ddフォーマットで公開することを望んでいます。GlobalConfiguration.Configuration.Formatters.JsonFormatterこれはこのクライアントに非常に固有であるため、グローバル設定(など)を変更したくありません。そして、私はそれを複数のクライアントのためのソリューションで開発しています。 私が考えることができる解決策の1つは、カスタムを作成しJsonConverterてから、それをカスタム書式設定を行う必要があるプロパティに置くことです 例えば class ReturnObjectA { [JsonConverter(typeof(CustomDateTimeConverter))] public DateTime ReturnDate { get;set;} } それを行う簡単な方法が他にあるかどうか疑問に思っています。


9
任意の長さの要求を許可するようにweb.configを構成する方法
textarea要素の値からファイルクライアント側を作成したいサイトを構築しています。 これを行うためのコードを用意していますが、このエラーが発生します HTTPエラー404.15-見つかりませんリクエストフィルタリングモジュールは、クエリ文字列が長すぎるリクエストを拒否するように設定されています。 任意のサイズのリクエストを処理できるようにこれをオーバーライドする方法はありますか? そうでない場合、filesystem / active xオブジェクトを使用せずにクライアント側でファイルを生成する方法はありますか? ありがとう



5
C#でUUIDを生成する方法
プログラムで.idlファイルを作成しています。プログラムでインターフェイスとメソッドのUUIDを作成するにはどうすればよいですか。 プログラムでUUIDを生成できますか?

7
LINQクエリ結果セットからのDataSetまたはDataTableの入力
LINQクエリをASMX Webサービスとしてどのように公開しますか?通常、ビジネス層から、型付きを返すDataSetかDataTable、ASMXを介して転送するためにシリアル化することができます。 LINQクエリに対して同じことをするにはどうすればよいですか?型付きDataSetまたはDataTableLINQクエリを介してデータを入力する方法はありますか? public static MyDataTable CallMySproc() { string conn = "..."; MyDatabaseDataContext db = new MyDatabaseDataContext(conn); MyDataTable dt = new MyDataTable(); // execute a sproc via LINQ var query = from dr in db.MySproc().AsEnumerable select dr; // copy LINQ query resultset into a DataTable -this does not work ! …

8
C#でDateTimeを比較する方法は?
ユーザーに過去の日付や時間を教えてほしくない。 入力した日時が現在の日時よりも短いかどうかを比較するにはどうすればよいですか? 現在の日付と時刻が2010年6月17日の午後12時25分である場合、ユーザーが2010年6月17日より前の日付と午後12時25分より前の時刻を指定できないようにします。 ユーザーが入力した時刻が2010年6月16日で、時刻が午後12時24分である場合、関数がfalseを返すように
137 c#  .net  datetime 

5
CancellationTokenがCancellationTokenSourceと分離しているのはなぜですか?
クラスCancellationTokenに加えて.NET 構造体が導入された理由の根拠を探していますCancellationTokenSource。APIの使用方法は理解していますが、そのように設計されている理由も理解したいと思います。 すなわち、なぜ私たちは持っているのですか? var cts = new CancellationTokenSource(); SomeCancellableOperation(cts.Token); ... public void SomeCancellableOperation(CancellationToken token) { ... token.ThrowIfCancellationRequested(); ... } 次のように直接渡す代わりにCancellationTokenSource: var cts = new CancellationTokenSource(); SomeCancellableOperation(cts); ... public void SomeCancellableOperation(CancellationTokenSource cts) { ... cts.ThrowIfCancellationRequested(); ... } これは、トークンを渡すよりもキャンセル状態のチェックが頻繁に行われるという事実に基づくパフォーマンス最適化ですか? それで、CancellationTokenSourceを追跡して更新できCancellationTokens、各トークンのキャンセルチェックはローカルフィールドアクセスですか? どちらの場合も、ロックされていない揮発性のブールで十分であることを考えると、なぜそれが速いのかはまだわかりません。 ありがとう!

8
.Netコアユニットテスト-モックIOptions <T>
ここには本当に明らかなものが欠けているように感じます。.Net Core IOptionsパターン(?)を使用してオプションを挿入する必要があるクラスがあります。そのクラスのユニットテストに行くとき、クラスの機能を検証するオプションのさまざまなバージョンを模擬したいと思います。スタートアップクラスの外でIOptionsを正しくモック/インスタンス化/設定する方法を知っている人はいますか? ここに私が取り組んでいるクラスのいくつかのサンプルがあります: 設定/オプションモデル using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace OptionsSample.Models { public class SampleOptions { public string FirstSetting { get; set; } public int SecondSetting { get; set; } } } 設定を使用するテストされるクラス: using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using OptionsSample.Models using System.Net.Http; using …

13
(C#で)文字列を「乗算」できますか?
たとえば、文字列があるとします。 string snip = "&lt;/li&gt;&lt;/ul&gt;"; 整数値にもよりますが、基本的に複数回書きたいです。 string snip = "&lt;/li&gt;&lt;/ul&gt;"; int multiplier = 2; // TODO: magic code to do this // snip * multiplier = "&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;"; 編集:私はこれを実装するために自分の関数を簡単に書くことができることを知っています、私が知らなかった奇妙な文字列演算子があったのかと思っていました

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