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

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

10
File.Create()を使用した後に別のプロセスによって使用されているファイル
実行時にファイルが存在するかどうかを検出しようとしています。存在しない場合は作成します。しかし、書き込もうとするとこのエラーが発生します。 別のプロセスによって使用されているため、プロセスはファイル 'myfile.ext'にアクセスできません。 string filePath = string.Format(@"{0}\M{1}.dat", ConfigurationManager.AppSettings["DirectoryPath"], costCentre); if (!File.Exists(filePath)) { File.Create(filePath); } using (StreamWriter sw = File.AppendText(filePath)) { //write my text } それを修正する方法についてのアイデアはありますか?
117 c#  file-io 

5
C#Convert List <string> to Dictionary <string、string>
これを実行するのは奇妙に思えるかもしれませんが、それを無視すると、リストを辞書に変換する簡潔な方法があり、辞書の各キーと値のペアはリストの各文字列にすぎません。すなわち List = string1, string2, string3 Dictionary = string1/string1, string2/string2, string3/string3 私はたくさんの検索を行いましたが、Stackoverflowだけで文字通り数十の例があり、逆方向にそれを行っただけですが、この方法ではありません。 これを行う理由は、3つの部分からなるコンポーネントが2つあり、それらを変更することは私の手に負えないからです。1つはメールアドレスのリストをリストとして返し、もう1つはToパラメータがディクショナリであるメールを送信します。辞書のキーはメールアドレスで、値は本名です。ただし、実名はわかりませんが、実名をメールアドレスに設定しても機能します。したがって、なぜリストを辞書に変換したいのですか?これを行う方法はたくさんあります。リストにkvpを追加するforeachループ。しかし、私は簡潔なコードが好きで、単一行の解決策があるかどうか疑問に思いました。
117 c#  list  dictionary 

6
存在しない可能性があるJTokenから値を取得します(ベストプラクティス)
Json.NETを使用してC#にも存在しない可能性があるJSON値を取得するためのベストプラクティスは何ですか? 現在、私はJSONプロバイダーを扱っています。JSONプロバイダーは、特定のキーと値のペアを含む場合と含まない場合があるJSONを返します。私は(おそらく間違って)このメソッドを使用して値を取得しています(doubleを取得する例): if(null != jToken["width"]) width = double.Parse(jToken["width"].ToString()); else width = 100; 今では問題なく動作しますが、それらがたくさんあると面倒です。結局、拡張メソッドを書いてしまいましたが、それを書いて初めて、私が愚かだったのではないかと思いました...とにかく、ここに拡張メソッドがあります(doubleとstringの場合のみを含めますが、実際にはかなり多くのもっと): public static T GetValue&lt;T&gt;(this JToken jToken, string key, T defaultValue = default(T)) { T returnValue = defaultValue; if (jToken[key] != null) { object data = null; string sData = jToken[key].ToString(); Type type = typeof(T); if (type is …
117 c#  json.net 

16
インターフェイスとクラスの違いは何ですか?また、クラスにメソッドを直接実装できるときにインターフェイスを使用する必要があるのはなぜですか?
これは非常に基本的な質問であることは承知していますが、面接官が非常に巧妙な方法で私に尋ねたので、私は無力でした:( 私はインターフェースの重要なまたは理論的な定義のみを知っており、私が取り組んだ多くのプロジェクトにそれを実装しました。しかし、これがなぜ、どのように役立つのか、本当にわかりません。 インターフェースについても理解できません。つまり、たとえば、 conn.Dispose();ついにブロック。しかし、そのクラスがIDisposableインターフェイス(SqlConnection)クラスを実装または継承していることはわかりません。どうすればメソッド名を呼び出すことができるのでしょうか。また、同じことですが、Disposeメソッドがどのように機能するのか理解していません。すべてのインターフェイスメソッドに対して、独自の実装で関数本体を実装する必要があるためです。それでは、インターフェースはどのように受け入れられ、契約として命名されますか?これらの質問は今まで心の中にあり続けていましたが、率直に言って、自分の質問を理解できる形で説明する良いスレッドは見たことがありません。 MSDNはいつものように非常に恐ろしく見え、1行も明確ではありません(ハイレベルの開発に携わっている皆さん、親切に言い訳をしてください。コードや記事は、それを見る人の心に届くはずなので、他の多くの人が言うように、MSDN使用されません)。 インタビュアーは言った: 彼には5つのメソッドがあり、クラスに直接実装して喜んでいますが、抽象クラスまたは抽象インターフェースを使用する必要がある場合、どちらを選択するのか、そしてその理由は何ですか。抽象クラスとインターフェースの両方の長所と短所についてさまざまなブログで読んだすべてのものに彼は答えましたが、彼は確信していません、彼は一般的に「なぜインターフェース」を理解しようとしています。「なぜ抽象クラス」は、同じメソッドを1回だけ実装でき、それを変更しない場合でも、一般に。 ネットのどこにも、インターフェースとその機能について明確に説明してくれる記事はありませんでした。私はそれらの多くのプログラマーの1人ですが、まだインターフェースについては知りませんが(私は使用した理論と方法を知っています)、明確に理解していることに満足していません。
117 c#  class  oop  interface  abstraction 

8
インデックス(ゼロベース)はゼロ以上である必要があります
エラーが発生し続けるねえ: インデックス(ゼロベース)は、ゼロ以上で、引数リストのサイズ未満でなければなりません。 私のコード: OdbcCommand cmd = new OdbcCommand("SELECT FirstName, SecondName, Aboutme FROM User WHERE UserID=1", cn); OdbcDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { Name.Text = String.Format("{0} {1}", reader.GetString(0), reader.GetString(1)); Aboutme.Text = String.Format("{2}", reader.GetString(0)); }
117 c#  asp.net  mysql  sql 

8
C#クラスの命名規則:BaseClass、ClassBase、AbstractClass
基本クラスの命名に推奨されるアプローチは何ですか?タイプ名の前に「Base」または「Abstract」を付けるのですか、それとも単に「Base」を付けるのですか? 以下を検討してください。 タイプ:ViewModel例:MainViewModel、ReportViewModel 基本クラス:BaseViewModelまたはViewModelBaseまたはAbstractViewModel 次の点も考慮してください。 タイプ:ProductたとえばVirtualProduct、ExpiringProduct 基本クラス:BaseProductまたはProductBaseまたはAbstractProduct どちらがより標準的だと思いますか? class Entity : EntityBase { } または class Entity : BaseEntity { }

10
XAML DataGridColumnsでDataGrid全体を埋めるにはどうすればよいですか?
サイズ変更可能な列を持つXAML(Silverlightではなく)でDataGridsを使用していますが、ユーザーが画面のサイズを変更すると、DataGridが拡張されます。 現在、すべてのDataGrid列の幅がDataGridの幅よりも小さい場合、クリックできない余分な「列」が表示され、目的を果たさなくなります。 1つの列を常にサイズ変更して残りのすべてのスペースを埋める方法を知っている人はいますか?
117 c#  wpf  xaml  datagrid  wpf-controls 

2
task.Resultと同じ完了したタスクを待ちます。
私は現在、Stephen Clearyの「C#クックブックの並行性」を読んでおり、次のテクニックに気づきました。 var completedTask = await Task.WhenAny(downloadTask, timeoutTask); if (completedTask == timeoutTask) return null; return await downloadTask; downloadTaskへの呼び出しでhttpclient.GetStringAsync、timeoutTask実行中Task.Delayです。 タイムアウトしなかった場合downloadTaskは、すでに完了しています。downloadTask.Resultタスクがすでに完了している場合、を返すのではなく、2回目の待機を行う必要があるのはなぜですか?


4
C#でのSelectとConvertAllの違い
私はいくつかのリストがあります: List&lt;int&gt; list = new List&lt;int&gt; { 1, 2, 3, 4, 5 }; リストの要素に変換を適用したい。これは2つの方法で実行できます。 List&lt;int&gt; list1 = list.Select(x =&gt; 2 * x).ToList(); List&lt;int&gt; list2 = list.ConvertAll(x =&gt; 2 * x).ToList(); これら2つの方法の違いは何ですか?
117 c#  .net  list 

3
指定されたタイプが列挙型かどうかを確認します
列挙型を[説明]属性で定義された文字列値に変換できるJson.NETのJsonConverterを書いています。 例えば: public enum MyEnum { [Description("Sunday")] Sunday, [Description("Monday")] Monday, [Description("Tuesday")] Tuesday, [Description("Wednesday")] Wednesday, [Description("Thursday")] Thursday, [Description("Friday")] Friday, [Description("Saturday")] Saturday } myEnum.Description()文字列の説明を明らかに返すサポート用のコードはすでにあります。 JsonConverter実装には、このメソッドがあります。 public override bool CanConvert(Type objectType) { } 私はかどうかを判別する方法を把握しようとしていますobjectTypeでEnum、コンバータが、それはこのオブジェクトを変換することができます知っていることは事実そうに返します。私は多くEnumのを持っているので、それぞれを明示的にチェックすることができないので、これを達成するためのより一般的な方法を望んでいました。
117 c#  enums 

10
C#でのマウスの位置の取得
マウスの位置を取得するにはどうすればよいですか?画面位置の観点から見て欲しい。 現在のマウス位置に設定したいプログラムを起動します。 Location.X = ?? Location.Y = ?? 編集:これは、フォームが作成される前に行う必要があります。
117 c#  mouse-position 

10
ASP.NET Coreでnpmを使用する方法
ASP.NET Coreアプリケーションに必要なjQuery、Bootstrap、Font Awesomeなどのクライアントライブラリを管理するためにnpmを使用しています。 私にとってうまくいったアプローチは、package.jsonファイルをプロジェクトに追加することから始まりました。これは次のようになります。 { "version": "1.0.0", "name": "myapp", "private": true, "devDependencies": { }, "dependencies": { "bootstrap": "^3.3.6", "font-awesome": "^4.6.1", "jquery": "^2.2.3" } } npmはこれらのパッケージをプロジェクトディレクトリのwwwrootと同じレベルにあるnode_modulesフォルダーに復元します。 ASP.NET Coreがwwwrootフォルダーから静的ファイルを提供し、node_modulesがそこにないため、この作業を行うためにいくつかの変更を行う必要がありました。最初の変更は、スタートアップのapp.UseStaticFilesの直前にapp.UseFileServerを追加することです。 csファイル: app.UseFileServer(new FileServerOptions() { FileProvider = new PhysicalFileProvider( Path.Combine(Directory.GetCurrentDirectory(), @"node_modules")), RequestPath = new PathString("/node_modules"), EnableDirectoryBrowsing = true }); app.UseStaticFiles(); 2つ目は、project.jsonファイルのpublishOptionsにnode_modulesを含めます。 "publishOptions": { "include": …

5
CancellationTokenプロパティの使用方法は?
前のクラスRulyCancelerのコードと比較して、を使用してコードを実行したいと思いました CancellationTokenSource。 キャンセルトークンで説明されているように、つまり例外をスロー/キャッチせずにそれを使用するにはどうすればよいですか?IsCancellationRequestedプロパティを使用できますか? 私はそれを次のように使用しようとしました: cancelToken.ThrowIfCancellationRequested(); そして try { new Thread(() =&gt; Work(cancelSource.Token)).Start(); } catch (OperationCanceledException) { Console.WriteLine("Canceled!"); } しかし、これによりcancelToken.ThrowIfCancellationRequested();メソッドで実行時エラーが発生しましたWork(CancellationToken cancelToken): System.OperationCanceledException was unhandled Message=The operation was canceled. Source=mscorlib StackTrace: at System.Threading.CancellationToken.ThrowIfCancellationRequested() at _7CancellationTokens.Token.Work(CancellationToken cancelToken) in C:\xxx\Token.cs:line 33 at _7CancellationTokens.Token.&lt;&gt;c__DisplayClass1.&lt;Main&gt;b__0() in C:\xxx\Token.cs:line 22 at System.Threading.ThreadHelper.ThreadStart_Context(Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, …

14
EFでDateTimeの日付コンポーネントのみを比較する方法は?
2つの日付値があります。1つは既にデータベースに保存されており、もう1つはユーザーがDatePickerを使用して選択しました。ユースケースは、データベースから特定の日付を検索することです。 以前にデータベースに入力された値には常に12:00:00の時間コンポーネントがありますが、ピッカーから入力された日付には異なる時間コンポーネントがあります。 日付コンポーネントのみに関心があり、時間コンポーネントは無視したいと思います。 C#でこの比較を行う方法は何ですか? また、LINQでこれを行う方法は? 更新:LINQ to Entitiesでは、以下が正常に機能します。 e =&gt; DateTime.Compare(e.FirstDate.Value, SecondDate) &gt;= 0

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