ブックマーク / learn.microsoft.com (69)

  • C# - マルチスレッド C# コードの複雑さを最小限に抑える

    このブラウザーはサポートされなくなりました。 Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。 2019 年 2 月 Volume 34 Number 2 [C#] マルチスレッド C# コードの複雑さを最小限に抑える Thomas Hansen 氏 | 2019 年 2 月 フォーク (つまりマルチスレッド プログラミング) は、プログラミングの中でも特に正しく行うのが困難な操作です。その理由は並列性です。スレッドが 1 つだけの線形プログラミングとは全く異なる考え方が必要になります。この問題について考えるには、ジャグラー (曲芸師) は良い例です。ジャグラーは、複数のボールを互いにぶつけることなく、空中に保つ必要があります。これはかなり難しい課題です。それでも、適切なツールを使い、正しく考えることが

    C# - マルチスレッド C# コードの複雑さを最小限に抑える
  • 名前に関するガイドライン

    フレームワークの開発で一貫性のある一連の命名規則に従うことは、フレームワークの使いやすさに大きく貢献することになります。 広範囲のプロジェクトで多くの開発者にフレームワークを使用してもらうことができます。 フォームの一貫性以外に、フレームワーク要素の名前は簡単に理解できて、各要素の機能を伝えるものにしなければなりません。 この章の目標は、開発者がすぐに理解できる名前が付けられるよう、一貫性のある一連の命名規則を提供することです。 コード開発の一般的ガイドラインとしてこれらの命名規則を採用することで、コード全体で名前付けの一貫性が向上することになります。 ただし、それは一般公開される API にのみ適用することが求められます (public または protected の型とメンバー、明示的に実装されるインターフェイス)。 このセクションの内容 大文字の使用規則 一般的な名前付け規則 アセン

    名前に関するガイドライン
  • /P (プリプロセス出力のファイルへの書き込み)

    C および C++ ソース ファイルが前処理され、前処理済みの出力がファイルに書き込まれます。 構文 /P 解説 ファイルのベース名はソース ファイルと同じで、拡張子は .i です。 そのプロセスでは、すべてのプリプロセッサ ディレクティブとマクロの展開を実行し、コメントを削除します。 前処理された出力にコメントを保持するには、/C (プリプロセス時のコメントの保持) オプションを /P と共に使用します。 /P を使用すると、各インクルード ファイルの先頭と末尾、および条件付きコンパイルのためにプリプロセッサ ディレクティブによって削除された行の周囲にある出力に #line ディレクティブが追加されます。 これらのディレクティブによって、前処理されたファイルの行に番号が割り振り直されます。 その結果、処理の後の段階で生成されたエラーでは、前処理されたファイルの行ではなく、元のソース ファ

    /P (プリプロセス出力のファイルへの書き込み)
    dotsarg
    dotsarg 2020/09/04
    プリプロセスファイルの出力方法が記載されている。
  • switch 式 - 'switch' 式を使ってパターン マッチ式を評価します - C#

    switch 式を使用して、入力式とのパターン一致に基づいて、候補式のリストの 1 つの式を評価します。 ステートメント コンテキストでの switch と同様のセマンティクスをサポートする switch ステートメントの詳細については、Selection ステートメント記事の「switch ステートメント」セクションを参照してください。 次の例は、switch 式を示しており、オンライン マップでの視方向を表す enum の値を、対応する基方位に変換しています。 public static class SwitchExample { public enum Direction { Up, Down, Right, Left } public enum Orientation { North, South, East, West } public static Orientation T

  • using ステートメント - 破棄可能なオブジェクトが正しく使用されるようにする - C# reference

    using ステートメントによって IDisposable インスタンスが適切に使用されるようになります。 var numbers = new List<int>(); using (StreamReader reader = File.OpenText("numbers.txt")) { string line; while ((line = reader.ReadLine()) is not null) { if (int.TryParse(line, out int number)) { numbers.Add(number); } } } コントロールが using ステートメントのブロックを離れると、取得した IDisposable インスタンスが破棄されます。 特に、using ステートメントによって、using ステートメントのブロック内で例外が発生した場合でも、破棄可能なイ

  • Windows ストア アプリの UX チェック リスト (Windows)

    アプリの認定をスムーズに進め、優れたユーザー エクスペリエンスを実現するには、このチェック リストを使ってアプリが UX ガイドラインに従っていることを確認してください。 必須 次の表に示しているのは、最も優先度の高いアプリ向け UX ガイドラインです。Windows ストアでアプリが認定されるには、このセクションに示したすべてのガイドラインに従う必要があります。 チェック 説明 ガイダンス

    Windows ストア アプリの UX チェック リスト (Windows)
  • フレームワーク デザインのガイドライン | Microsoft Docs

    このセクションでは、.NET Framework を拡張および操作するライブラリをデザインするためのガイドラインを示します。 目標は、開発に使用されるプログラミング言語に依存しない統合プログラミング モデルを提供することにより、ライブラリ デザイナーが API の一貫性と使いやすさを確保できるようにすることです。 .NET Framework を拡張するクラスやコンポーネントを開発する場合は、これらのデザイン ガイドラインに従うことをお勧めします。 一貫性のないライブラリ デザインは、開発者の生産性に悪影響を及ぼし、採用を妨げます。 ガイドラインは、Do、Consider、Avoid、Do not という言葉から始まる単純な推奨事項として編成されています。 これらのガイドラインは、クラス ライブラリ デザイナーがさまざまなソリューション間のトレードオフを理解できるようにすることを目的として

    フレームワーク デザインのガイドライン | Microsoft Docs
    dotsarg
    dotsarg 2020/01/21
    名前付けのガイドラインが記載されている。
  • Windows API リスト: Windows API、Win32 API、Win32API

    このブラウザーはサポートされなくなりました。 Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。

    Windows API リスト: Windows API、Win32 API、Win32API
  • Aliases and typedefs (C++)

    You can use an alias declaration to declare a name to use as a synonym for a previously declared type. (This mechanism is also referred to informally as a type alias). You can also use this mechanism to create an alias template, which can be useful for custom allocators. Syntax using identifier = type; Remarks identifier The name of the alias. type The type identifier you're creating an alias for.

    Aliases and typedefs (C++)
  • intrinsic pragma

    Specifies that calls to functions specified in the pragma's argument list are intrinsic. Syntax #pragma intrinsic( function_1 [, function_2 ... ] ) Remarks The intrinsic pragma tells the compiler that a function has known behavior. The compiler may call the function and not replace the function call with inline instructions, if it will result in better performance. The library functions with intri

    intrinsic pragma
    dotsarg
    dotsarg 2017/09/19
    一部の関数を組み込み形式にものに置き換える。
  • アンセーフ コード、データへのポインター、および関数ポインター - C# reference

    ポインター関連の演算子について詳しくは、「ポインターに関連する演算子」をご覧ください。 どのポインター型も、暗黙的に void* 型に変換できます。 どのポインター型にも、値 null を割り当てることができます。 どのポインター型も、キャスト式を使用して、他のポインター型に明示的に変換できます。 また、任意の整数型をポインター型に、または任意のポインター型を整数型に変換することもできます。 これらの変換には、明示的なキャストが必要です。 次の例では、int* を byte* に変換しています。 ポインターは、変数の最下位バイト アドレスを指すことに注意してください。 int のサイズ (4 バイト) まで結果を連続してインクリメントする場合、変数の残りのバイトを表示することができます。 int number = 1024; unsafe { // Convert to byte: byt

  • lock ステートメント - 共有リソースへのアクセスを同期 - C# reference

    lock ステートメントは、指定のオブジェクトに対する相互排他ロックを取得し、ステートメント ブロックを実行してからロックを解放します。 ロックが保持されている間、ロックを保持するスレッドではロックを再度取得し、解放することができます。 他のスレッドはブロックされてロックを取得できず、ロックが解放されるまで待機します。 lock ステートメントにより常に、最大で 1 つだけのスレッドでその文が実行されます。 lock ステートメントの形式は次のとおりです。 lock (x) { // Your code... } 変数 x は、System.Threading.Lock 型の式、または参照型です。 コンパイル時に x が System.Threading.Lock 型であることがわかっている場合は、次とまったく同じになります。 using (x.EnterScope()) { // Yo

  • 標準の数値書式指定文字列 - .NET

    一般的な数値型を書式設定するには、標準の数値書式指定文字列を使用します。 標準の数値書式指定文字列の形式は [format specifier][precision specifier] です。 "書式指定子"は、数値書式の種類 (通貨やパーセントなど) を指定する単一の英文字です。 空白を含む複数の英文字で構成される数値書式指定文字列は、カスタム数値書式指定文字列として解釈されます。 詳細については、「カスタム数値形式文字列」をご覧ください。 "精度指定子" は、結果の文字列の桁数に影響する、省略可能な整数です。 .NET 7 以降のバージョンでは、有効桁数の最大値は 999,999,999 です。 .NET 6 では、有効桁数の最大値は Int32.MaxValue です。 以前のバージョンの .NET では、有効桁数は 0 - 99 の範囲で指定できます。 精度指定子は、数値の文字列

    標準の数値書式指定文字列 - .NET
  • コレクション内での比較と並べ替え - .NET

    System.Collections クラスは、削除する要素を検索するか、キーと値のペアの値を返すかに関係なく、コレクションの管理に関連するほぼすべての処理において比較を実行します。 通常、コレクションは等値比較子か順序比較子、またはその両方を使用します。 比較には 2 つのコンストラクターが使用されます。 等しいかどうかの確認 Contains、 IndexOf、 LastIndexOf、 Remove などのメソッドは、コレクション要素に対して等値比較子を使用します。 コレクションがジェネリックの場合、次のガイドラインに従ってアイテムの等価性が比較されます。 T 型で IEquatable<T> ジェネリック インターフェイスが実装されている場合、等値比較子はそのインターフェイスの Equals メソッドです。 T 型で IEquatable<T>が実装されていない場合、 Object

    コレクション内での比較と並べ替え - .NET
  • MSBuild - Visual Studio 2015

  • Creating an Options Page - Visual Studio 2015

  • ブレークポイントとトレースポイントの使用

    ソース行、アセンブリ命令、および呼び出し履歴の関数のブレークポイントを設定します。 条件、ヒット カウント、および実行位置を指定します。 トレースポイントで出力します。 ブレークポイントを保存およびインポートします。 内容 Create breakpoints that break when you want Set a breakpoint at a source line, assembly instruction, or call stack function Access the advanced functionality of breakpoints Specify when a breakpoint breaks by hit count, expression evaluation, execution location, or data change Print to t

    ブレークポイントとトレースポイントの使用
    dotsarg
    dotsarg 2016/10/19
    [C++/CLI][debug][document][general]
  • デバッガーでのネイティブ オブジェクトのカスタム ビューの作成

    Visual Studio の Natvis フレームワークでは、[ウォッチ]、[ローカル]、[データヒント] のウィンドウのようなデバッガーの変数ウィンドウを Visual Studio でどのように表示するかをカスタマイズできます。 この設定は、以前のバージョンの Visual Studio で使用されていた autoexp.dat ファイルよりも優先され、XML 構文の使用、より高度な診断、バージョン管理、複数ファイルのサポートが可能になります。 注意 Natvis フレームワークは次の場合には視覚化に使用されません。 混合モードでのデスクトップ アプリケーション(Windows ストア アプリではないアプリ) のデバッグで、[Managed C++ 互換モード] オプションが Visual Studio の [オプション] ダイアログ ボックスの [デバッグ]/[全般] ページでオ

    デバッガーでのネイティブ オブジェクトのカスタム ビューの作成
  • ネイティブ C++ の式

    デバッガーは、Microsoft および ANSI C/C++ の大部分の式を認識します。 デバッガーには、式をより安全かつ便利に評価するための組み込み関数とコンテキスト演算子も用意されています。 このトピックでは、次に挙げるような、注意が必要な C++ 式の制限事項について説明します。 コードやスクリプト、またはマネージ コード式には、コンテキスト演算子やほとんどの書式指定子を使用できません。 コンテキスト演算子や書式指定子は、ネイティブ C++ の式エバリュエーターに固有の要素です。 このセクション デバッガーの組み込み関数による状態の保持 コンテキスト演算子によるシンボルの指定 ネイティブ C++ の式の制限事項 アクセス制御 あいまいな参照 匿名の名前空間 コンストラクター、デストラクター、および変換 継承 インライン関数とコンパイラ組み込み関数 数値定数 演算子関数 オーバーロー

    ネイティブ C++ の式
  • C++ の書式指定子

    ウォッチ ウィンドウまたは [クイック ウォッチ] ダイアログ ボックスでネイティブ コードをデバッグする場合、書式指定子を使用して値を表示する書式を変更します。 (書式指定子のほとんどはネイティブ コード専用ですが、Visual C# にはいくつかの書式指定子があります。 「C# の書式指定子」を参照してください。) また、イミディエイト ウィンドウ、コマンド ウィンドウ、ソース ウィンドウでも、書式指定子を使用できます。 これらのウィンドウで式の上にカーソルを合わせると、結果が [データヒント] に表示されます。 [データヒント] には、[データヒント] 表示の書式指定子が反映されます。 注意 Visual Studio のネイティブ デバッガーが新しいデバッグ エンジンに移行しました。この変更では、いくつかの既存の書式指定子が新しい書式指定子に置き換えられました。移行が完了していない

    C++ の書式指定子