This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.

このブラウザーはサポートされなくなりました。 Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。 拡張メンバーを使用すると、新しい派生型を作成したり、再コンパイルしたり、元の型を変更したりせずに、既存の型にメソッドを "追加" できます。 C# 14 以降では、拡張メソッドの定義に使用する構文が 2 つあります。 C# 14 では、 extension コンテナーが追加されます。ここでは、型または型のインスタンスに対して複数の拡張メンバーを定義します。 C# 14 より前のバージョンでは、静的メソッドの最初のパラメーターに this 修飾子を追加して、メソッドがパラメーター型のインスタンスのメンバーとして表示されることを示します。 拡張メソッドは静的メソッドですが、拡張型のインスタンス メソッドであるかの
JSON を文字列またはファイルに書き込むには、 JsonSerializer.Serialize メソッドを呼び出します。 シリアル化の例 次の例では、JSON を文字列として作成します。 using System.Text.Json; namespace SerializeBasic { public class WeatherForecast { public DateTimeOffset Date { get; set; } public int TemperatureCelsius { get; set; } public string? Summary { get; set; } } public class Program { public static void Main() { var weatherForecast = new WeatherForecast { Dat
例 次のコード例では、さまざまなパス名構文の種類を使用して新しい MessageQueue オブジェクトを作成します。 いずれの場合も、コンストラクターでパスが定義されているキューにメッセージを送信します。 #using <system.dll> #using <system.messaging.dll> using namespace System; using namespace System::Messaging; ref class MyNewQueue { public: // References public queues. void SendPublic() { MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" ); myQueue->Send( "Public queue by path name." );
Microsoftのチュートリアルで学んでいこう 前回までで、Windows APIを使ってモーダルダイアログボックスを作成した。短いソースコードで実際に動作するウィンドウプログラミングを体験するものとして、ダイアログボックスを表示するMessageBox()はわかりやすいものだったと思う。今回から、ウィンドウを作成する基本的なコーディング方法を取り上げていく。 Windows APIを利用したウィンドウプログラミングとしては、Microsoftが提供している次のチュートリアルに沿って学習を進めるのがよいだろう。比較的短く簡潔にまとまっており、説明もわかりやすい。 Module 1. Your First Windows Program - Win32 apps | Microsoft Docs ただし、上記チュートリアルに掲載されているサンプルソースコードは、現在ではそのままではビルドで
sealed 修飾子をクラスに適用すると、それ以外のクラスが、そのクラスから継承できなくなります。 次の例では、B クラスは A クラスを継承しますが、B クラスからはどのクラスも継承できなくなります。 class A {} sealed class B : A {} sealed 修飾子は、基底クラスの仮想メソッドまたは仮想プロパティをオーバーライドするメソッドやプロパティで使用することもできます。 これにより、クラスの派生が行えるようになり、そのクラスが特定の仮想メソッドまたは仮想プロパティをオーバーライドできなくなります。 例 次の例では、Z は Y から継承しますが、Z は仮想関数 F をオーバーライドできません。この仮想関数は X で宣言されており、Y でシールされています。 class X { protected virtual void F() { Console.Write
using ディレクティブを使用すると、その型の完全修飾名前空間を指定せずに、名前空間で定義された型を使用できます。 基本的な形式の場合、using ディレクティブでは、次の例に示すように 1 つの名前空間からすべての型をインポートします。 using System.Text; using ディレクティブには、次の 2 つの修飾子を適用できます。 global 修飾子は、プロジェクト内のすべてのソース ファイルに同じ using ディレクティブを追加するのと同じ効果があります。 static 修飾子では、名前空間内の型をすべてインポートする代わりに、1 つの型から static メンバーと入れ子にされた型をインポートします。 両方の修飾子を組み合わせて、静的メンバーを型からプロジェクト内のすべてのソース ファイルにインポートできます。 "using エイリアス ディレクティブ" を使用して
public value class System::SByte : IComparable, IComparable<System::SByte>, IConvertible, IEquatable<System::SByte>, IFormattable public value class System::SByte : IComparable, IComparable<System::SByte>, IConvertible, IEquatable<System::SByte>, ISpanFormattable public value class System::SByte : IComparable<System::SByte>, IConvertible, IEquatable<System::SByte>, IParsable<System::SByte>, ISpanP
例 次のコード例では、 コントロールを使用PrintDialogして、、ShowHelp、および Document の各プロパティを設定するAllowSomePages方法を示します。 この例を実行するには、 という名前のコントロールと というPrintDialog1名前のボタンButton1を含むPrintDialogフォームに次のコードを貼り付けます。 この例では、ボタンの Click イベントと のイベントdocToPrintがPrintPage、この例で定義されているイベント処理メソッドに接続されている必要があります。 // Declare the PrintDocument object. System::Drawing::Printing::PrintDocument^ docToPrint; // This method will set properties on the
例 1 次の例では、メソッドを Regex.Matches(String, String) 呼び出して、入力文字列内のすべてのパターン一致を取得します。 次に、返されたMatchCollectionオブジェクト内のMatchオブジェクトを反復処理して、各一致に関する情報を表示します。 using System; using System.Text.RegularExpressions; public class Example { public static void Main() { string input = "int[] values = { 1, 2, 3 };\n" + "for (int ctr = values.GetLowerBound(1); ctr <= values.GetUpperBound(1); ctr++)\n" + "{\n" + " Console.Wr
public ref class Regex public ref class Regex : System::Runtime::Serialization::ISerializable public class Regex public class Regex : System.Runtime.Serialization.ISerializable [System.Serializable] public class Regex : System.Runtime.Serialization.ISerializable type Regex = class type Regex = class interface ISerializable [<System.Serializable>] type Regex = class interface ISerializable Public C
多くのパーソナル コンピューターとワークステーションには、複数のスレッドを同時に実行できる複数の CPU コアがあります。 ハードウェアを利用するために、コードを並列化して複数のプロセッサに作業を分散させることができます。 以前は、並列化にはスレッドとロックの低レベルの操作が必要でした。 Visual Studio と .NET は、ランタイム、クラス ライブラリの種類、診断ツールを提供することで、並列プログラミングのサポートを強化します。 .NET Framework 4 で導入されたこれらの機能により、並列開発が簡略化されます。 スレッドやスレッド プールを直接操作しなくても、効率的できめ細かくスケーラブルな並列コードを自然なイディオムで記述できます。 次の図は、.NET での並列プログラミング アーキテクチャの概要を示しています。 関連トピック テクノロジー 説明
.NET では、タスク ベースの非同期パターンは、新しい開発に推奨される非同期設計パターンです。 これは、非同期操作を表すために使用されるTask名前空間のTask<TResult>型とSystem.Threading.Tasks型に基づいています。 名前付け、パラメーター、および戻り値の型 TAP では、1 つのメソッドを使用して、非同期操作の開始と完了を表します。 これは、非同期プログラミング モデル (APM または IAsyncResult) パターンとイベント ベースの非同期パターン (EAP) の両方と対照的です。 APM には、 Begin メソッドと End メソッドが必要です。 EAP には、 Async サフィックスを持つメソッドが必要です。また、1 つ以上のイベント、イベント ハンドラー デリゲート型、および EventArg派生型も必要です。 TAP の非同期メソッ
コード書けばすぐわかる事なんですが is 演算子の挙動の話です。 is 演算子は複数の型で true になる可能性があります。 親子関係がある型で厳密に型を判定したい場合、GetType() と typeof を使います。 // こんなクラスがあったとして、、 public class BaseClass { } public class DerivedClass_1 : BaseClass { } public class DerivedClass_2 : BaseClass { } // こんなコードを書いたとすると結果がコメントのようになります static void Main(string[] args) { BaseClass test = new DerivedClass_1(); // is演算子による型判定 Console.WriteLine("test is BaseCl
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く