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

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


2
UIオートメーションでのGoogle Chromeのアクセス可能なツリーキャッシュの問題
ユーザーがブラウザで下にスクロールしても、Google Chromeはユーザー補助要素(AutomationElement)を更新しません。 それを再現するには: を使用して、"chrome --force-render-accessibility"またはでグローバルアクセシビリティを設定して、レンダラーのアクセシビリティを有効にします "chrome://accessibility"。 行くhttp://en.wikipedia.org/wiki/Google (Windowsキットの)UIオートメーションモードでinspect.exeを開き、「関連記事へのリンク」要素を探します。 Chromeに戻り、下部にある[関連記事へのリンク]が表示されるまで下にスクロールします 「関連記事へのリンク」要素が画面外にマークされている Chromeに強制的に更新させる手動の解決策をいくつか見つけました。 ズームを90%に設定してから100%に戻します(非常に醜い方法です) アクセシビリティをオフにしてからオンに切り替える chrome://accessibility/ 私が探しているのは、これらの操作の1つをプログラムで実行する機能、またはChromeにキャッシュツリーを更新させる操作です。 私が試したこと: ウィンドウのサイズを変更 PInvoke/MoveWindow ウィンドウを再描画 PInvoke/Redrawwindow クロム拡張機能を作成し、オンデマンドでズームを100%に強制します:(chrome.tabs.setZoom(null, 0);機能しますが、点滅してウィンドウが遅くなります) これらはどれも正しく機能していません。 編集:Windows 7でGoogle Chrome 40.XX、41.XX、42.XX、43.XX、44.XX、45.XX、46.XX、47.XX.Dev、48.XX.Devでテスト済み。

18
「ローカルにコピー」のベストプラクティスは何ですか?
大きなc#ソリューションファイル(〜100プロジェクト)があり、ビルド時間を改善しようとしています。「ローカルコピー」は多くの場合無駄であると思いますが、ベストプラクティスについて疑問に思っています。 .slnには、アセンブリBに依存するアプリケーションAがあり、アセンブリBはアセンブリCに依存しています。この場合、数十の「B」と少数の「C」があります。これらはすべて.slnに含まれているため、プロジェクト参照を使用しています。現在、すべてのアセンブリは$(SolutionDir)/ Debug(またはRelease)に組み込まれています。 デフォルトでは、Visual Studioはこれらのプロジェクト参照を「ローカルにコピー」としてマークします。これにより、ビルドされる「B」ごとに「C」がすべて$(SolutionDir)/ Debugにコピーされます。これは無駄に思えます。「ローカルのコピー」をオフにしただけでは何がうまくいかないのですか?大規模なシステムを持つ他の人々は何をしますか? ファローアップ: 多くの応答は、ビルドを小さな.slnファイルに分割することを提案しています...上記の例では、最初に基礎クラス「C」を構築し、次にモジュール「B」の大部分、次にいくつかのアプリケーションを構築します。 A "。このモデルでは、BからCへの非プロジェクト参照が必要です。そこで発生する問題は、「デバッグ」または「リリース」がヒントパスに焼き付けられ、「B」のリリースビルドのビルドに巻き込まれることです。 「C」のデバッグビルドに対して。 ビルドを複数の.slnファイルに分割した場合、この問題をどのように管理しますか?


6
ツールヒントをコントロールに追加するにはどうすればよいですか?
ToolTipマウスをその上に置いたときに表示するコントロールがいくつかあります。これどうやってするの?これをコード内だけでなくデザイナでも適切に実行する方法を知りたい(ToolTipツールボックスにコンポーネントがありますが、わかりません)。 これが重複していても驚くことはありませんが、より高度な特定のシナリオに関する質問しか見つけることができません。基本を知りたいのですが。
154 c#  winforms  tooltip 

15
C#でメソッド呼び出しをインターセプトするにはどうすればよいですか?
特定のクラスについて、トレース機能を使用したいと考えています。つまり、すべてのメソッド呼び出し(メソッドシグネチャと実際のパラメーター値)とすべてのメソッド出口(メソッドシグネチャのみ)をログに記録したいと考えています。 次のことを前提としてこれをどのように達成しますか: C#にサードパーティのAOPライブラリを使用したくありません。 追跡したいすべてのメソッドに重複したコードを追加したくありません。 クラスのパブリックAPIを変更したくありません。クラスのユーザーは、すべてのメソッドをまったく同じ方法で呼び出すことができるはずです。 質問をより具体的にするために、3つのクラスがあると仮定しましょう。 public class Caller { public static void Call() { Traced traced = new Traced(); traced.Method1(); traced.Method2(); } } public class Traced { public void Method1(String name, Int32 value) { } public void Method2(Object object) { } } public class Logger { public static void …
154 c#  reflection  aop 

22
IEnumerableがnullまたは空かどうかを確認する方法
私はstring.IsNullOrEmpty方法が大好きです。IEnumerableに同じ機能を許可するものが欲しいです。そのようなものはありますか?たぶんコレクションヘルパークラス?私が尋ねる理由は、ifステートメントでは、パターンがそうだとコードが乱雑に見えるからです(mylist != null && mylist.Any())。持つ方がはるかにクリーンになりますFoo.IsAny(myList)。 この投稿はその答えを与えません:IEnumerableは空ですか?。

10
日時-次の火曜日を取得
次の火曜日の日付を取得するにはどうすればよいですか? PHPでは、と同じくらい簡単strtotime('next tuesday');です。 どうすれば.NETで同様のことを達成できますか
154 c#  .net  date 

6
.NETを使用してファイルをロックしているプロセスを確認するにはどうすればよいですか?
HandleまたはProcess Monitorの使用に関するいくつかの回答を見てきましたが、自分のコード(C#)でどのプロセスがファイルをロックしているかを確認できます。 私はwin32 APIを使いこなすつもりではないかと考えていますが、誰かがすでにこれを行っており、私を正しい軌道に乗せることができれば、本当に助かります。 更新 同様の質問へのリンク どのようにして、どのプロセスがc#を使用してファイルをロックしたかを知るにはどうすればよいですか? コマンドラインツール ネットワーク全体 USBデバイスのロック ロックされたファイルで単体テストが失敗する ロックされたファイルの削除
154 c#  file-locking 

4
イベントハンドラーのメモリリークを回避する理由と方法
StackOverflowでいくつかの質問と回答を読むこと+=で、C#(または他の.net言語)を使用してイベントハンドラーを追加すると、一般的なメモリリークが発生する可能性があることに気づきました... 私は過去にこのようなイベントハンドラーを何度も使用しましたが、それらがアプリケーションでメモリリークを引き起こしたり、引き起こしたりしていることに気付いていませんでした。 これはどのように機能しますか(つまり、実際にメモリリークが発生するのはなぜですか)? この問題を解決するにはどうすればよいですか?-=同じイベントハンドラを使用して十分ですか? このような状況に対処するための一般的な設計パターンまたはベストプラクティスはありますか? 例:UIでいくつかのイベントを発生させるために多くの異なるイベントハンドラーを使用して、多くの異なるスレッドを持つアプリケーションをどのように処理するべきですか? すでに構築された大きなアプリケーションでこれを効率的に監視するための良い簡単な方法はありますか?


8
C#-Windows 64ビットでプログラムファイル(x86)を取得する方法
私が使用しています: FileInfo( System.Environment.GetFolderPath( System.Environment.SpecialFolder.ProgramFiles) + @"\MyInstalledApp" ユーザーのマシンでプログラムが検出されたかどうかを判断するために(理想的ではありませんが、私が探しているプログラムはMS-DOSアプリケーションの古き良きものであり、他の方法は考えられませんでした)。 Windows XPおよびWindows Vistaの32ビットバージョンでは、これは正常に機能します。ただし、x64 Windows Vistaでは、コードはx64 Program Filesフォルダーを返しますが、アプリケーションはProgram Files x86にインストールされます。"C:\ Program Files(x86)"を配線せずにProgram Files x86へのパスをプログラムで返す方法はありますか?
153 c#  windows  file  64-bit 

7
MVC 3:Ajax経由で読み込まれたときに、レイアウトページなしでビューをレンダリングする方法
プログレッシブエンハンスメントについて学び、AJAX化の見解について質問があります。MVC 3プロジェクトには、レイアウトページ、ビュースタートページ、2つのプレーンビューがあります。 viewstartページはViewsフォルダーのルートにあるため、すべてのビューに適用されます。すべてのビューが_Layout.cshtmlレイアウトページに使用する必要があることを指定します。レイアウトページには、各ビューに1つずつ、合計2つのナビゲーションリンクが含まれています。リンクは@Html.ActionLink()、ページへのレンダリングに使用されます。 今私はjQueryを追加し、これらのリンクを乗っ取り、Ajaxを使用してページにコンテンツを動的にロードしたいと考えています。 <script type="text/javascript"> $(function () { $('#theLink').click(function () { $.ajax({ url: $(this).attr('href'), type: "GET", success: function (response) { $('#mainContent').html(response); } }); return false; }); }); </script> これを行うには、2つの方法が考えられますが、どちらも特に好きではありません。 1)ビューのコンテンツ全体を取得して、それらを部分ビューに配置し、レンダリングされたときにメインビューに部分ビューを呼び出させることができます。こうすることRequest.IsAjaxRequest()で、コントローラーで使用して、要求がAjax要求であるかどうかに基づいて戻るView()か戻ることができPartialView()ます。Ajaxリクエストに通常のビューを返すことはできません。それは、レイアウトページを使用し、レイアウトページの2番目のコピーが挿入されるためです。ただし、@{Html.RenderPartial();}標準のGETリクエストでは、aのみを含む空のビューを作成する必要があるため、これは好きではありません。 public ActionResult Index() { if (Request.IsAjaxRequest()) return PartialView("partialView"); else return View(); } 次に、Index.cshtmlで次のようにします。 @{Html.RenderPartial("partialView");} 2)_viewstartからレイアウト指定を削除し、リクエストがAjaxでない場合は手動で指定できます。 public ActionResult Index() { …

12
NuGetパッケージマネージャーコンソールを使用するとソースに到達できない
ファイルの手動更新からNuGetにパッケージ管理を移行しています。古いバージョンのパッケージをインストールして、ソース管理にすでにあるパッケージと一致させようとしています。UIからこれを行う方法はないので、コマンドラインを使用して適切なバージョンを取得します。 どういうわけか、Install-Package私はnugetギャラリーに到達できないことを私に伝え続けます。 nuget.org [ https://www.nuget.org/api/v2/]のソースに到達できません。NuGetローカルキャッシュへのフォールバック これは、当社のソリューションの1つでのみ発生します。新しいソリューションを作成するか、同じリポジトリで別のソリューションを使用すると、パッケージは期待どおりにインストールされます。ダミーソリューションにパッケージをインストールしてローカルキャッシュを満たし、障害のあるソリューションに正常にインストールすることもできます。Invoke-WebRequestNuGetコンソールからURLにアクセスしようとすると、HTTP 200が表示されます。 何が原因ですか?ソリューション/プロジェクトごとにパッケージソースを上書きする方法はありますか?

10
プライベートフィールドがインスタンスではなく型に対してプライベートであるのはなぜですか?
C#(および他の多くの言語)では、同じタイプの他のインスタンスのプライベートフィールドにアクセスすることは完全に正当です。例えば: public class Foo { private bool aBool; public void DoBar(Foo anotherFoo) { if (anotherFoo.aBool) ... } } ようにC#の仕様(セクション3.5.1、3.5.2)プライベートフィールドへのアクセスのタイプではなく、インスタンス上で述べています。私はこれについて同僚と話し合っており、(同じインスタンスへのアクセスを制限するのではなく)このように機能する理由を考え出そうとしています。 考えられる最良の引数は、クラスがプライベートフィールドにアクセスして別のインスタンスとの等価性を判断する可能性がある等価性チェックです。他に理由はありますか?それとも、このように機能しなければならない、または何かが完全に不可能であることを絶対に意味するいくつかの黄金の理由?

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