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

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

2
インターフェイスを使用する場合、プライベートセッターをどのように実装しますか?
いくつかのプロパティを持つインターフェースを作成しました。 インターフェイスが存在しない場合、クラスオブジェクトのすべてのプロパティは次のように設定されます。 { get; private set; } ただし、これはインターフェイスを使用している場合は許可されないため、これを実現できますか?

2
Entity Frameworkの非同期操作が完了するまでに10倍の時間がかかる
Entity Framework 6を​​使用してデータベースを処理しているMVCサイトがあり、すべてを非同期コントローラーとして実行し、データベースへの呼び出しを非同期対応として実行するように変更しています(例:ToListAsync())。 ToList()の代わりに) 私が抱えている問題は、クエリを非同期に変更するだけで信じられないほど遅くなることです。 次のコードは、データコンテキストから「アルバム」オブジェクトのコレクションを取得し、かなり単純なデータベース結合に変換されます。 // Get the albums var albums = await this.context.Albums .Where(x => x.Artist.ID == artist.ID) .ToListAsync(); 作成されたSQLは次のとおりです。 exec sp_executesql N'SELECT [Extent1].[ID] AS [ID], [Extent1].[URL] AS [URL], [Extent1].[ASIN] AS [ASIN], [Extent1].[Title] AS [Title], [Extent1].[ReleaseDate] AS [ReleaseDate], [Extent1].[AccurateDay] AS [AccurateDay], [Extent1].[AccurateMonth] AS [AccurateMonth], [Extent1].[Type] AS [Type], [Extent1].[Tracks] …

8
スローされた例外をc#/。netに文書化する方法
現在、社内の他の開発者が内部で使用する小さなフレームワークを書いています。 適切なIntellisense情報を提供したいのですが、スローされた例外を文書化する方法がわかりません。 次の例では: public void MyMethod1() { MyMethod2(); // also may throw InvalidOperationException } public void MyMethod2() { System.IO.File.Open(somepath...); // this may throw FileNotFoundException // also may throw DivideByZeroException } 例外を文書化するためのマークアップは次のとおりです。 /// <exception cref="SomeException">when things go wrong.</exception> 私が理解していないのは、によって呼び出され たコードによってスローされた例外を文書化する方法MyMethod1()ですか? によってスローされた例外を文書化する必要があります MyMethod2() によってスローされた例外を文書化する必要がありますFile.Open()か? 起こり得る例外を文書化する最良の方法は何でしょうか?

7
無名メソッドをvarに割り当てることができないのはなぜですか?
私は次のコードを持っています: Func<string, bool> comparer = delegate(string value) { return value != "0"; }; ただし、次のものはコンパイルされません。 var comparer = delegate(string value) { return value != "0"; }; コンパイラがなぜそれを理解できないのFunc<string, bool>ですか?これは1つの文字列パラメータを取り、ブール値を返します。代わりに、それは私にエラーを与えます: 暗黙的に型指定されたローカル変数に匿名メソッドを割り当てることはできません。 私は1つの推測を持っています、そしてそれがvarバージョンがコンパイルされた場合、私が以下を持っているならばそれは一貫性に欠けるでしょう: var comparer = delegate(string arg1, string arg2, string arg3, string arg4, string arg5) { return false; }; Func <>は最大4つの引数しか許可しないため、上記は意味を成しません(.NET 3.5では、これが私が使用しているものです)。おそらく誰かが問題を明確にすることができるでしょう。ありがとう。


7
区切られた文字列をList <String>にsplit()する方法
私はこのコードを持っていました: String[] lineElements; . . . try { using (StreamReader sr = new StreamReader("TestFile.txt")) { String line; while ((line = sr.ReadLine()) != null) { lineElements = line.Split(','); . . . しかし、代わりにリストを使うべきだと思いました。しかし、このコード: List&lt;String&gt; listStrLineElements; . . . try { using (StreamReader sr = new StreamReader("TestFile.txt")) { String line; while ((line = …
139 c#  .net  list  arraylist 

12
C#でバッチファイルを実行する
C#でバッチファイルを実行しようとしていますが、うまくいきません。 インターネットで複数の例を見つけましたが、うまくいきません。 public void ExecuteCommand(string command) { int ExitCode; ProcessStartInfo ProcessInfo; Process Process; ProcessInfo = new ProcessStartInfo("cmd.exe", "/c " + command); ProcessInfo.CreateNoWindow = true; ProcessInfo.UseShellExecute = false; Process = Process.Start(ProcessInfo); Process.WaitForExit(); ExitCode = Process.ExitCode; Process.Close(); MessageBox.Show("ExitCode: " + ExitCode.ToString(), "ExecuteCommand"); } コマンド文字列には、(に保存されているsystem32)バッチファイルの名前と、操作する必要のあるいくつかのファイルが含まれています。(例:)txtmanipulator file1.txt file2.txt file3.txt。バッチファイルを手動で実行すると、正しく動作します。 コードを実行すると、 **ExitCode: 1** (Catch all …

28
「catch」または「finally」のスコープの「try」で変数が宣言されないのはなぜですか?
C#およびJava(およびその他の言語も)では、「try」ブロックで宣言された変数は、対応する「catch」または「finally」ブロックのスコープにはありません。たとえば、次のコードはコンパイルされません。 try { String s = "test"; // (more code...) } catch { Console.Out.WriteLine(s); //Java fans: think "System.out.println" here instead } このコードでは、sはtryブロックのスコープ内にのみ存在するため、catchブロックのsへの参照でコンパイル時エラーが発生します。(Javaでは、コンパイルエラーは「sは解決できません」です。C#では、「名前 's'は現在のコンテキストに存在しません」です。) この問題の一般的な解決策は、tryブロック内ではなく、tryブロックの直前に変数を宣言することです。 String s; try { s = "test"; // (more code...) } catch { Console.Out.WriteLine(s); //Java fans: think "System.out.println" here instead } ただし、少なくとも私にとっては、(1)これは不格好なソリューションのように感じられ、(2)プログラマーが意図したよりもスコープが広い変数になります(メソッドのコンテキストのみではなく、メソッドの残り全体) try-catch-finally)。 私の質問は、この言語設計の決定の背後にある根拠は何でしたか(Java、C#、および/または他の該当する言語で)?

7
リリースモードの.NETアセンブリのスタックトレースに行番号を表示する
リリースモードでビルド/デプロイされた.NETアセンブリのスタックトレースに行を表示する方法はありますか? 更新: 私のアプリケーションは、3つのクラスライブラリプロジェクトと1つのASP.NET "website"プロジェクトに分かれています。私が追跡しようとしているエラーは、3つのクラスライブラリプロジェクトの1つです。「オブジェクト参照がオブジェクトのインスタンスに設定されていません」エラーを生成しているクラスライブラリプロジェクトのpdbファイルのみをデプロイしました。 行番号はまだスタックトレースに表示されません。スタックトレースの行番号を取得するには、すべてのプロジェクトのpdbファイルをデプロイする必要がありますか? 実用的なソリューション アプリケーションごとにpdbファイルをデプロイすると、行番号の問題が修正されました。

13
2つの緯度と経度の地理座標間の距離の計算
2つのGeoCoordinates間の距離を計算しています。他の3〜4個のアプリに対してアプリをテストしています。距離を計算するとき、他のアプリが3.5マイルを取得しているのに対して、計算には平均3.3マイルを取得する傾向があります。それは私が実行しようとしている計算にとって大きな違いです。距離を計算するための優れたクラスライブラリはありますか?私はそれをC#でこのように計算しています: public static double Calculate(double sLatitude,double sLongitude, double eLatitude, double eLongitude) { var radiansOverDegrees = (Math.PI / 180.0); var sLatitudeRadians = sLatitude * radiansOverDegrees; var sLongitudeRadians = sLongitude * radiansOverDegrees; var eLatitudeRadians = eLatitude * radiansOverDegrees; var eLongitudeRadians = eLongitude * radiansOverDegrees; var dLongitude = eLongitudeRadians - sLongitudeRadians; var dLatitude …

7
.NETで偽装をどのように行いますか?
.NETでユーザーを偽装する簡単な方法はありますか? これまでのところ、すべてのなりすましの要件について、コードプロジェクトのこのクラスを使用しています。 .NET Frameworkを使用してそれを行うより良い方法はありますか? 偽装する必要があるIDを表すユーザー資格情報セット(ユーザー名、パスワード、ドメイン名)があります。
139 c#  .net  impersonation 

1
待機可能なThread.Sleepを取得する方法?
私はawait / sleepパラダイムに基づいてネットワークにバインドされたアプリケーションを書いています。 時々、接続エラーが発生し、私の経験では、しばらく待ってから操作を再試行するのにお金がかかります。 問題は、await / asyncでThread.Sleepまたは他の同様のブロック操作を使用すると、呼び出し元スレッドのすべてのアクティビティをブロックすることです。 同じ効果を得るには、Thread.Sleep(10000)を何に置き換えればよいですか。 await Thread.SleepAsync(10000) ? 更新 私は追加のスレッドを作成せずにこれを行う答えを好みます

8
アクションフィルター属性からリダイレクト
でリダイレクトを行うための最良の方法は何ですかActionFilterAttribute。私はActionFilterAttribute呼び出されIsAuthenticatedAttributeFilter、セッション変数の値をチェックしました。変数がfalseの場合、アプリケーションがログインページにリダイレクトされるようにします。ルート名を使用してリダイレクトしSystemLoginたいのですが、この時点でのリダイレクト方法は問題ありません。

3
「10進数」が有効な属性パラメータータイプではないのはなぜですか?
それは本当に信じられないほどですが、本物です。このコードは機能しません: [AttributeUsage(AttributeTargets.Property|AttributeTargets.Field)] public class Range : Attribute { public decimal Max { get; set; } public decimal Min { get; set; } } public class Item { [Range(Min=0m,Max=1000m)] //compile error:'Min' is not a valid named attribute argument because it is not a valid attribute parameter type public decimal Total { …
139 c#  .net  attributes 


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