diff --git a/docs/framework/deployment/repair.md b/docs/framework/deployment/repair.md new file mode 100644 index 00000000000..5d95d5e7a3f --- /dev/null +++ b/docs/framework/deployment/repair.md @@ -0,0 +1,27 @@ +--- +title: ".NET Framework を修復する" +description: ".NET Framework を修復する方法について説明します" +author: rlander +keywords: ".Net Framework, インストール" +ms.date: 03/28/2017 +ms.topic: article +ms.prod: .net-framework-4.6 +ms.technology: vs-ide-deployment +ms.devlang: dotnet +ms.assetid: 87cdb1d5-c5g8-8af9-93e8-5f478de07ff7 +ms.translationtype: Machine Translation +ms.sourcegitcommit: bea5aa270cef5105a685f5141362b439c12af340 +ms.openlocfilehash: 5ad2b51bff437de49cc0e3c9e20d33702da867e1 +ms.contentlocale: ja-jp +ms.lasthandoff: 05/11/2017 + +--- + +# .NET Framework を修復する + +状況によっては、.NET Framework のインストールが破損し、修復が必要になる場合があります。 たとえば、アプリを起動しようとしてすぐにクラッシュする場合や、新しい .NET Framework バージョンをインストールできない場合があります。 + +このような場合は、[.NET Framework Repair Tool](http://download.microsoft.com/download/2/B/D/2BDE5459-2225-48B8-830C-AE19CAF038F1/NetFxRepairTool.exe) を使用して .NET Framework のインストールを修復できます。 + +.NET Framework の修復後もアプリを起動できない場合は、アプリの問題の可能性があります。 その場合はアプリケーションの発行元に問い合わせてください。 + diff --git a/docs/framework/install/repair.md b/docs/framework/install/repair.md new file mode 100644 index 00000000000..5d95d5e7a3f --- /dev/null +++ b/docs/framework/install/repair.md @@ -0,0 +1,27 @@ +--- +title: ".NET Framework を修復する" +description: ".NET Framework を修復する方法について説明します" +author: rlander +keywords: ".Net Framework, インストール" +ms.date: 03/28/2017 +ms.topic: article +ms.prod: .net-framework-4.6 +ms.technology: vs-ide-deployment +ms.devlang: dotnet +ms.assetid: 87cdb1d5-c5g8-8af9-93e8-5f478de07ff7 +ms.translationtype: Machine Translation +ms.sourcegitcommit: bea5aa270cef5105a685f5141362b439c12af340 +ms.openlocfilehash: 5ad2b51bff437de49cc0e3c9e20d33702da867e1 +ms.contentlocale: ja-jp +ms.lasthandoff: 05/11/2017 + +--- + +# .NET Framework を修復する + +状況によっては、.NET Framework のインストールが破損し、修復が必要になる場合があります。 たとえば、アプリを起動しようとしてすぐにクラッシュする場合や、新しい .NET Framework バージョンをインストールできない場合があります。 + +このような場合は、[.NET Framework Repair Tool](http://download.microsoft.com/download/2/B/D/2BDE5459-2225-48B8-830C-AE19CAF038F1/NetFxRepairTool.exe) を使用して .NET Framework のインストールを修復できます。 + +.NET Framework の修復後もアプリを起動できない場合は、アプリの問題の可能性があります。 その場合はアプリケーションの発行元に問い合わせてください。 + diff --git a/docs/standard/frameworks.md b/docs/standard/frameworks.md index 7b13ef735df..41a2271f12e 100644 --- a/docs/standard/frameworks.md +++ b/docs/standard/frameworks.md @@ -1,62 +1,156 @@ --- -title: "フレームワークとターゲット" -description: ".NET のコードを記述するときのフレームワーク ターゲットの概念について説明します。" -keywords: .NET, .NET Core +title: "ターゲット フレームワーク | Microsoft Docs" +description: ".NET Core アプリケーションおよびライブラリのターゲット フレームワークに関連する情報。" +keywords: ".NET, .NET Core, フレームワーク, TFM" author: richlander ms.author: mairaw -ms.date: 09/19/2016 +ms.date: 04/27/2017 ms.topic: article ms.prod: .net ms.technology: dotnet-standard ms.devlang: dotnet ms.assetid: 6ef56a2e-593d-497b-925a-1e25bb6df2e6 -translationtype: Human Translation -ms.sourcegitcommit: 90fe68f7f3c4b46502b5d3770b1a2d57c6af748a -ms.openlocfilehash: f0c1987f46bd3715c54e270c15eea4b8ee7b67e6 -ms.lasthandoff: 03/02/2017 +ms.translationtype: Machine Translation +ms.sourcegitcommit: 45835eb80642253f80ea630ae9db1ac766b72b9c +ms.openlocfilehash: 11c1f11e4f8354b7573d03e680cf4a8a16fa26d9 +ms.contentlocale: ja-jp +ms.lasthandoff: 05/11/2017 --- -# フレームワークとターゲット +# ターゲット フレームワーク -.NET エコシステムには、フレームワークの概念があります。 フレームワークは、特定のプラットフォームをターゲットにするために使用できる API を定義します。 .NET Framework 4.6 は、これらのプラットフォームの 1 つです。 フレームワークは、Visual Studio やその他の IDE およびエディターで、適切な API セットを提供するために使用されます。 これらは、対象としているフレームワークの適切なパッケージ (および基になるアセット) を確実に作成して使用するため、NuGet パッケージの運用と使用の両方で NuGet でも使用されます。 .NET エコシステムにおける基軸通貨の&1; つとしてフレームワークを考えることができます。 概念は正確性のためにあり、実行時に @System.MissingMethodException やフレンドがユーザーおよび顧客に表示されないようにしるものです。 +*フレームワーク*は、アプリとライブラリの作成に使用するオブジェクト、メソッド、ツールを定義します。 .NET Framework は、主に Windows オペレーティング システムを実行しているシステム上で実行されるアプリとライブラリの作成に使用されます。 .NET Core には、さまざまなオペレーティング システムで実行されるアプリとライブラリを構築できるフレームワークが含まれています。 -## フレームワークのバージョン +*フレームワーク*と*プラットフォーム*という用語は、文章の中での使用方法によっては混乱することがあります。 さらに悪いことに、文脈によっては*プラットフォーム*という用語が別の意味になることもあります。 たとえば、".NET Core" という言葉は、アプリとライブラリを構築する文脈では ".NET Core フレームワーク" の意味で、アプリとライブラリ コードを実行する文脈では ".NET Core プラットフォーム" の意味で出現します。 *コンピューティング プラットフォーム*では、アプリケーションが*どこで、どのように*実行されるかについて説明します。 .NET Core は、[.NET Core 共通言語ランタイム (CoreCLR)](https://github.com/dotnet/coreclr) を使用してコードが実行されるので、これもプラットフォームです。 .NET Framework のフレームワーク オブジェクト、メソッド、およびツールを使用して開発されたアプリとライブラリ コードを実行するために[共通言語ランタイム (CLR)](clr.md) を使用している .NET Framework の場合も同様です。 "クロスプラットフォーム" という用語はドキュメントでよく見られますが、この用語を見かけたら、"クロスプラットフォーム システムとクロスアーカイブ (x86、x64、arm)" が通常、執筆者が伝えたいと思う意味なので、これを意味していると考えるのではないでしょうか。 -次の表は、使用できるフレームワークのセットと、これらが参照される方法、およびこれらが実装する [.NET Standard Library](library.md) のバージョンを定義します。 +フレームワークのオブジェクトとメソッドは、アプリケーション プログラミング インターフェイス (API) と呼ばれます。 フレームワークの API は、[Visual Studio](https://www.visualstudio.com/)、[Visual Studio for Mac](https://www.visualstudio.com/vs/visual-studio-mac/)、[Visual Studio Code](https://code.visualstudio.com/)、およびその他の統合開発環境 (IDE) とエディターで使用され、開発用の適切なオブジェクトとメソッドのセットを提供しています。 また、フレームワークは、アプリまたはライブラリで対象としているフレームワークに適したパッケージを確実に作成して使用するため、NuGet パッケージの運用と使用の両方で [NuGet](https://www.nuget.org/) でも使用されます。 -| フレームワーク | [最新バージョン] | ターゲット フレームワーク モニカー (TFM) | コンパクトなターゲット フレームワーク モニカー (TFM) | .NET Standard バージョン | メタパッケージ | -|:--------: | :--: | :--: | :--: | :--: | :--: | :--: | -| .NET Standard | 1.6 | .NETStandard,Version=1.6 | netstandard1.6 | N/A | [NETStandard.Library](https://www.nuget.org/packages/NETStandard.Library)| -| .NET Core アプリケーション | 1.0.1 | .NETCoreApp,Version=1.0 | netcoreapp1.0 | 1.6 | [Microsoft.NETCore.App](https://www.nuget.org/packages/Microsoft.NETCore.App)| -| .NET Framework | 4.6.2 | .NETFramework,Version=4.6.2 | net462 | 1.5 | N/A | +*1 つのフレームワークを対象にする*か、複数のフレームワークを対象にすると、使用する API のセットと API のバージョンが決まります。 フレームワークを参照するには、製品名ごと、長い形式または短い形式のフレームワーク名ごと、またはファミリごとという複数の方法があります。 -> [!NOTE] -> これらのフレームワークのバージョンは、最新の安定したバージョンです。 この表で説明されていないリリース前のバージョンがある可能性があります。 +## フレームワークを参照する -## フレームワークに関する記述 - -記述された形式でフレームワークを参照する複数の方法があり、そのほとんどがこのドキュメントで使用されています。 それらは、どちらもドキュメントを解釈するための凡例として以下に説明されていますが、他のドキュメントでガイドとしても使用できます。 - -例として .NET Framework 4.6.1 を使用すると、次の形式が使用できます。 +フレームワークを参照する方法は複数あります。そのほとんどについてこの .NET Core ドキュメントで使用します。 たとえば .NET Framework 4.6.2 を使用する場合は、次の形式が使用されます。 **成果物を参照する** -.NET プラットフォームまたはランタイムを参照することができます。 +.NET プラットフォームまたはランタイムを参照することができます。 両方とも有効です。 -- ".NET Framework 4.6.1" +* .NET Framework 4.6.2 +* .NET 4.6.2 **フレームワークを参照する** -長い形式または短い形式の TFM を使用して、フレームワークまたはフレームワークの対象を参照することができます。 一般的なケースではどちらも等しく有効です。 +長い形式または短い形式の TFM を使用して、フレームワークまたはフレームワークの対象を参照することができます。 両方とも有効です。 -- `.NETFramework,Version=4.6.1` -- `net461` +* `.NETFramework,Version=4.6.2` +* `net462` **フレームワークのファミリを参照する** -長い形式または短い形式のフレームワーク ID を使用して、フレームワークのファミリを参照することができます。 一般的なケースではどちらも等しく有効です。 - -- `.NETFramework` -- `net` +長い形式または短い形式のフレームワーク ID を使用して、フレームワークのファミリを参照することができます。 両方とも有効です。 + +* `.NETFramework` +* `net` + +## 最新のフレームワークバージョン + +次の表では、使用できるフレームワークのセットと、これらが参照される方法、およびこれらが実装する [.NET Standard Library](library.md) のバージョンを定義します。 これらのフレームワークのバージョンは、最新の安定したバージョンです。 プレリリース バージョンは記載されていません。 + +| フレームワーク | [最新バージョン] | ターゲット フレームワーク モニカー (TFM) | コンパクトなターゲット フレームワーク モニカー (TFM) | .NET Standard バージョン | メタパッケージ | +| :-------------------: | :------------: | :----------------------------: | :------------------------------------: | :-------------------: | :---------: | +| .NET Standard | 1.6.1 | .NETStandard,Version=1.6 | netstandard1.6 | N/A | [NETStandard.Library](https://www.nuget.org/packages/NETStandard.Library) | +| .NET Core アプリケーション | 1.1.1 | .NETCoreApp,Version=1.1 | netcoreapp1.1 | 1.6 | [Microsoft.NETCore.App](https://www.nuget.org/packages/Microsoft.NETCore.App) | +| .NET Framework | 4.6.2 | .NETFramework,Version=4.6.2 | net462 | 1.5 | N/A | + +## サポートされるフレームワーク + +通常、フレームワークは、短いターゲット フレームワーク モニカー (*TFM*) で参照されます。 .NET Standard の場合、1 つの参照で複数のフレームワークを参照できるように、*TxM* に汎用化されています。 NuGet クライアントは次のフレームワークをサポートしています。 同等のものがかっこ (`[]`) 内に示されます。 + +| 名前 | 省略形 | TFM/TxM | +| -------------------------- | ------------ | -------------------------------------------- | +| .NET Standard | netstandard | netstandard1.0 | +| | | netstandard1.1 | +| | | netstandard1.2 | +| | | netstandard1.3 | +| | | netstandard1.4 | +| | | netstandard1.5 | +| | | netstandard1.6 | +| .NET Core | netcoreapp | netcoreapp1.0 | +| | | netcoreapp1.1 | +| .NET Framework | net | net11 | +| | | net20 | +| | | net35 | +| | | net40 | +| | | net403 | +| | | net45 | +| | | net451 | +| | | net452 | +| | | net46 | +| | | net461 | +| | | net462 | +| Windows ストア | netcore | netcore [netcore45] | +| | | netcore45 [win、win8] | +| | | netcore451 [win81] | +| .NET Micro Framework | netmf | netmf | +| Silverlight | sl | sl4 | +| | | sl5 | +| Windows Phone | wp | wp [wp7] | +| | | wp7 | +| | | wp75 | +| | | wp8 | +| | | wp81 | +| | | wpa81 | +| ユニバーサル Windows プラットフォーム | uap | uap [uap10.0] | +| | | uap10.0 [win10] [netcore50] | + +## 使用されていないフレームワーク + +次のフレームワークは使用されていません。 これらのフレームワークを対象とするパッケージは、指定されている代替のフレームワークに移行するようにしてください。 + +| 使用されていないフレームワーク | Replacement | +| -------------------- | ----------- | +| aspnet50 | netcoreapp | +| aspnetcore50 | | +| dnxcore50 | | +| dnx | | +| dnx45 | | +| dnx451 | | +| dnx452 | | +| dotnet | netstandard | +| dotnet50 | | +| dotnet51 | | +| dotnet52 | | +| dotnet53 | | +| dotnet54 | | +| dotnet55 | | +| dotnet56 | | +| netcore50 | uap10.0 | +| win | netcore45 | +| win8 | netcore45 | +| win81 | netcore451 | +| win10 | uap10.0 | +| winrt | netcore45 | + +## 優先順位 + +フレームワークの番号は相互の関連性や互換性を示していますが、必ずしも同一ではありません。 + +| フレームワーク | 使用可能 | +| -------------------------------- | --------- | +| uap (ユニバーサル Windows プラットフォーム) | win81 | +| | wpa81 | +| | netcore50 | +| win (Windows ストア) | winrt | +| | winrt45 | + +## .NET Standard + +[.NET Standard](https://github.com/dotnet/standard) は、バイナリ互換フレームワーク間の参照を簡易化し、1 つのターゲット フレームワークで複数のフレームワークの組み合わせを参照できます。 詳細については、「[.NET Standard Library](library.md)」を参照してください。 + +[NuGet Tools の Get Nearest Framework Tool](http://nugettoolsdev.azurewebsites.net/) では、プロジェクトのフレームワークに基づいて、パッケージ内で使用できる複数のフレームワーク アセットから、1 つのフレームワークを選択するために使用する NuGet ロジックをシミュレートしています。 このツールを使用するには、1 つのプロジェクト フレームワークと 1 つ以上のパッケージ フレームワークを入力します。 **[送信]** ボタンを選択します。 列挙したパッケージのフレームワークが、指定したプロジェクトのフレームワークと互換性があるかどうかが表示されます。 + +## ポータブル クラス ライブラリ + +ポータブル クラス ライブラリの詳細については、NuGet ドキュメントの「*Target Framework*」(ターゲット フレームワーク) の「[Portable Class Libraries](https://docs.microsoft.com/nuget/schema/target-frameworks#portable-class-libraries)」(ポータブル クラス ライブラリ) セクションを参照してください。 Stephen Cleary がサポートされる PCL を列挙するツールを作成しています。 詳細については、「[Framework Profiles in .NET](http://blog.stephencleary.com/2012/05/framework-profiles-in-net.html)」(.NET のフレームワーク プロファイル) を参照してください。 diff --git a/docs/standard/library.md b/docs/standard/library.md index 655a94b91c9..b4da27aea7c 100644 --- a/docs/standard/library.md +++ b/docs/standard/library.md @@ -1,55 +1,70 @@ --- -title: .NET Standard Library -description: .NET Standard Library -keywords: .NET, .NET Core +title: .NET Standard | Microsoft Docs +description: ".NET Standard の概要、そのバージョン、サポートされている .NET プラットフォームについて説明します。" +keywords: .NET Standard, PCL, .NET author: richlander ms.author: mairaw -ms.date: 06/20/2016 +ms.date: 03/17/2017 ms.topic: article ms.prod: .net ms.technology: dotnet-standard ms.devlang: dotnet ms.assetid: c044882c-af15-45f2-96d1-534557a5ee9b -ms.translationtype: Human Translation -ms.sourcegitcommit: 633dcc6d966125139cb21c4e70dac4d4794ee9a4 -ms.openlocfilehash: da326fb823c16c7795a6a05ad302c13918b435aa +ms.translationtype: Machine Translation +ms.sourcegitcommit: a580e33f756bfb5eb96daeb9decb4acfe3ef2f52 +ms.openlocfilehash: 970c70af2d8e5524e022f38d1ad93697a62985f8 ms.contentlocale: ja-jp -ms.lasthandoff: 03/20/2017 +ms.lasthandoff: 05/11/2017 --- -# .NET Standard Library +# .NET Standard -.NET Standard Library は、すべての .NET ランタイムで使用できるようにすることを目的とした .NET API の正式な仕様です。 Standard Library の背後にある動機は、.NET エコシステムの高度な統一性を確立することです。 [ECMA 335](https://github.com/dotnet/coreclr/blob/master/Documentation/project-docs/dotnet-standards.md) は引き続き .NET ランタイムの動作の統一性を確立しますが、.NET ライブラリの実装用の .NET 基底クラス ライブラリ (BCL) に同様の仕様はありません。 +[.NET Standard](https://github.com/dotnet/standard) は、すべての .NET ランタイムで使用できるようにすることを目的とした .NET API の正式な仕様です。 .NET Standard の背後にある意図は、.NET エコシステムの高度な統一性を確立することです。 [ECMA 335](https://github.com/dotnet/coreclr/blob/master/Documentation/project-docs/dotnet-standards.md) は引き続き .NET ランタイムの動作の統一性を確立しますが、.NET ライブラリの実装用の .NET 基底クラス ライブラリ (BCL) に同様の仕様はありません。 -.NET Standard Library により、次の主なシナリオが可能になります。 +.NET Standard により、次の主なシナリオが可能になります。 - ワークロードに関係なく、すべての .NET プラットフォーム用に統一された BCL API のセットを定義し、実装する。 - 開発者が、この同じ API のセットを使用して、.NET ランタイム間で使用可能なポータブル ライブラリを生成できるようにする。 - .NET API による共有ソースの条件付きコンパイルを削減するか、できればなくし、OS API に対してのみにする。 -さまざまな .NET ランタイムが、.NET Standard Library の特定のバージョンを実装します。 各 .NET ランタイム バージョンは、それがサポートしている最高の .NET Standard バージョンをアドバタイズし、そのことは以前のバージョンもサポートしていることを意味します。 たとえば、.NET Framework 4.6 は .NET Standard Library 1.3 を実装しており、このことは、.NET Standard Library のバージョン 1.0 ~ 1.3 で定義されているすべての API を公開していることを意味します。 同様に、.NET Framework 4.6.2 は.NET Standard Library 1.5 を実装し、.NET Core 1.0 は .NET Standard Library 1.6 を実装しています。 +さまざまな .NET ランタイムが、.NET Standard の特定のバージョンを実装します。 各 .NET ランタイム バージョンは、それがサポートしている最高の .NET Standard バージョンをアドバタイズし、そのことは以前のバージョンもサポートしていることを意味します。 たとえば、.NET Framework 4.6 は .NET Standard 1.3 を実装しており、このことは、.NET Standard のバージョン 1.0 ~ 1.3 で定義されているすべての API を公開していることを意味します。 同様に、.NET Framework 4.6.1 は .NET Standard 1.5 を実装し、.NET Core 1.0 は .NET Standard 1.6 を実装しています。 ## .NET Platform のサポート -.NET Standard Library をサポートしているすべての .NET ランタイムのセットを確認できます。 +次の表は、.NET Standard のすべてのバージョンとサポートされているプラットフォームの一覧です。 -| プラットフォーム名 | Alias | | | | | | | | | -| :---------- | :--------- |:--------- |:--------- |:--------- |:--------- |:--------- |:--------- |:--------- |:--------- | -|.NET Standard | netstandard | 1.0 | 1.1 | 1.2 | 1.3 | 1.4 | 1.5 | 1.6 | 2.0 | -|.NET Core|netcoreapp|→|→|→|→|→|→|1.0|2.0| -|.NET Framework|net|→|4.5|4.5.1|4.6|4.6.1|4.6.2|vNext|4.6.1| -|Mono/Xamarin プラットフォーム||→|→|→|→|→|→|→|vNext| -|ユニバーサル Windows プラットフォーム|uap|→|→|→|→|10.0|→|→|vNext| -|Windows|win|→|8.0|8.1|||||| -|Windows Phone|wpa|→|→|8.1|||||| -|Windows Phone Silverlight|wp|8.0|||||||| +[!INCLUDE [net-standard-table](../includes/net-standard-table.md)] + +対象にすることができる最高バージョンの .NET Standard を確認するには、次の手順を実行します。 +1. 実行する .NET プラットフォームを示す行を探します。 +2. この行内で、右から左の方向に、バージョンを示す列を探します。 +3. 列見出しは、ターゲットがサポートしている .NET Standard バージョンです (そのバージョン以下の .NET Standard バージョンでもサポートされます)。 +4. 対象にするプラットフォームごとに、この手順を繰り返します。 複数のターゲット プラットフォームがある場合は、その中から低いバージョンを選択することをお勧めします。 たとえば、.NET Framework 4.5 と .NET Core 1.0 で実行する場合、使用できる .NET Standard の最高のバージョンは .NET Standard 1.1 です。 + +### 対象にする .NET Standard バージョン + +.NET Standard バージョンを選択する場合、次のトレードオフを考慮する必要があります。 + +- バージョンが高くなるほど、使用できる API が多くなる。 +- バージョンが低くなるほど、実装しているプラットフォームが多くなる。 + +一般的に、可能な限り*最小*バージョンの .NET Standard を対象にすることが推奨されます。 そのため、対象にする最高バージョンの .NET Standard を見つけたら、次の手順を実行します。 +1. 1 つ低いバージョンの .NET Standard を対象にしてプロジェクトをビルドします。 +2. プロジェクトのビルドが成功したら、手順 1 を繰り返します。 失敗した場合は、対象を次に高いバージョンに変更します。これが対象のバージョンです。 + +### .NET Standard のバージョン管理規則 + +バージョン管理規則は主に 2 つあります。 + +- 追加式。.NET Standard バージョンは論理的に同心円形です。高位のバージョンには、旧バージョンのすべての API が組み込まれています。 バージョン間に互換性に影響する変更はありません。 +- 不変。 出荷後、.NET Standard のバージョンは固定されます。 新しい API は、特定の .NET プラットフォーム (.NET Core など) でまず使用できるようになります。 .NET Standard の審査会が、新しい API を全ユーザーに使用できるようにした方がよいと判断すると、新しい .NET Standard バージョンに追加されます。 ## ポータブル クラス ライブラリとの比較 -.NET Standard Library は、次世代の[ポータブル クラス ライブラリ (PCL)](https://msdn.microsoft.com/library/gg597391.aspx) と考えることができます。 .NET Standard Library は、標準 BCL を精選し、結果として、.NET ランタイム間で高度な統一性を確立することによって、ポータブル ライブラリの作成の方法を向上しています。 .NET Standard Library を対象とするライブラリは、PCL つまり ".NET Standard ベースの PCL" です。 既存の PCL は、"プロファイルベースの PCL" です。 +.NET Standard は、次世代の[ポータブル クラス ライブラリ (PCL)](https://msdn.microsoft.com/library/gg597391.aspx) と考えることができます。 .NET Standard は、標準 BCL を精選し、結果として、.NET ランタイム間で高度な統一性を確立することによって、ポータブル ライブラリの作成の方法を向上しています。 .NET Standard を対象とするライブラリは、PCL つまり ".NET Standard ベースの PCL" です。 既存の PCL は、"プロファイルベースの PCL" です。 -.NET Standard Library と PCL プロファイルは、似たような目的で作成されましたが、主な点が異なります。 +.NET Standard と PCL プロファイルは、似たような目的で作成されましたが、主な点が異なります。 類似点: @@ -57,55 +72,55 @@ ms.lasthandoff: 03/20/2017 相違点: -- .NET Standard Library は精選された API のセットで、PCL プロファイルは、既存のプラットフォームの交差部分によって定義されています。 -- .NET Standard Library は線形的にバージョン管理されていますが、PCL プロファイルはそうではありません。 -- PCL プロファイルはマイクロソフトのプラットフォームを表し、.NET Standard Library はプラットフォームに依存しません。 +- .NET Standard は精選された API のセットで、PCL プロファイルは、既存のプラットフォームの交差部分によって定義されています。 +- .NET Standard は線形的にバージョン管理されていますが、PCL プロファイルはそうではありません。 +- PCL プロファイルはマイクロソフトのプラットフォームを表し、.NET Standard はプラットフォームに依存しません。 ## 指定 -.NET Standard Library の仕様は、標準化された API のセットです。 この仕様は、.NET ランタイムの実装、具体的には Microsoft (.NET Framework、.NET Core、Mono を含む) と Unity によって管理されています。 新しい .NET Standard Library のバージョンの構築の一環として、公開フィードバック プロセスが使われています。 +.NET Standard の仕様は、標準化された API のセットです。 この仕様は、.NET ランタイムの実装、具体的には Microsoft (.NET Framework、.NET Core、Mono を含む) と Unity によって管理されています。 [GitHub](https://github.com/dotnet/standard) 経由の新しい .NET Standard のバージョンの構築の一環として、公開フィードバック プロセスが使われています。 ### 正式な成果物 -正式な仕様は標準に含まれる API を定義する一連の .cs ファイルです。 各[コンポーネント](https://github.com/dotnet/corefx/tree/master/src) の [ref ディレクトリ](https://github.com/dotnet/corefx/tree/master/src/System.Runtime/ref) に.NET Standard Library API が定義されています。 ref 成果物は [CoreFX リポジトリ](https://github.com/dotnet/corefx)内に存在しますが、それらは .NET Core 固有ではありません。 +正式な仕様は標準に含まれる API を定義する一連の .cs ファイルです。 各[コンポーネント](https://github.com/dotnet/corefx/tree/master/src) の [ref ディレクトリ](https://github.com/dotnet/corefx/tree/master/src/System.Runtime/ref) に.NET Standard API が定義されています。 ref 成果物は [CoreFX リポジトリ](https://github.com/dotnet/corefx)内に存在しますが、それらは .NET Core 固有ではありません。 -[NETStandard.Library](https://www.nuget.org/packages/NETStandard.Library) メタパッケージ ([ソース](https://github.com/dotnet/standard/blob/master/netstandard/pkg/NETStandard.Library.dependencies.props)) は、1 つ以上の.NET Standard Library のバージョンを定義する (一部) ライブラリのセットについて説明しています。 +[NETStandard.Library](https://www.nuget.org/packages/NETStandard.Library) メタパッケージ ([ソース](https://github.com/dotnet/standard/blob/master/netstandard/pkg/NETStandard.Library.dependencies.props)) は、1 つ以上の .NET Standard Library のバージョンを定義する (一部) ライブラリのセットについて説明しています。 System.Runtime などの特定のコンポーネントは、次のように説明されています。 -- .NET Standard Library の一部 (そのスコープだけ)。 -- そのスコープの.NET Standard Library の複数のバージョン。 +- .NET Standard の一部 (そのスコープだけ)。 +- そのスコープの .NET Standard の複数のバージョン。 便利に読めるようにし、特定の開発者シナリオ (コンパイラを使用するなど) を可能にするために、派生成果物が提供されています。 -- マークダウンの API 一覧 (TBD) +- [マークダウンの API 一覧](https://github.com/dotnet/standard/tree/master/docs/versions) - [NuGet パッケージ](../core/packages.md)として配布され、[NETStandard.Library](https://www.nuget.org/packages/NETStandard.Library/) メタパッケージによって参照される参照アセンブリ。 ### パッケージ表現 -.NET Standard Library 参照アセンブリの主要な配布手段は [NuGet パッケージ](../core/packages.md)です。 実装は、各 .NET ランタイムに適切なさまざまな方法で配布されます。 +.NET Standard 参照アセンブリの主要な配布手段は [NuGet パッケージ](../core/packages.md)です。 実装は、各 .NET ランタイムに適切なさまざまな方法で配布されます。 -NuGet パッケージは 1 つまたは複数の[フレームワーク](frameworks.md)を対象にしています。 .NET Standard Library パッケージは、".NET Standard" フレームワークを対象にしています。 `netstandard` [compact TFM](frameworks.md) (`netstandard1.4` など) を使用して、.NET Standard Framework を対象にすることができます。 複数のランタイムでの実行を意図したライブラリは、このフレームワークを対象とする必要があります。 +NuGet パッケージは 1 つまたは複数の[フレームワーク](frameworks.md)を対象にしています。 .NET Standard パッケージは、".NET Standard" フレームワークを対象にしています。 `netstandard` [compact TFM](frameworks.md) (`netstandard1.4` など) を使用して、.NET Standard Framework を対象にすることができます。 複数のランタイムでの実行を意図したライブラリは、このフレームワークを対象とする必要があります。 -`NETStandard.Library` メタパッケージは .NET Standard Library を定義する NuGet パッケージの完全なセットを参照しています。 `netstandard` を対象とする最も一般的な方法は、このメタパッケージを参照することです。 それは、.NET Standard Library を定義する約 40 の .NET ライブラリと関連する API について説明しており、それらにアクセスできるようにしています。 `netstandard` を対象とする追加のパッケージを参照して、追加の API にアクセスできます。 +`NETStandard.Library` メタパッケージは .NET Standard を定義する NuGet パッケージの完全なセットを参照しています。 `netstandard` を対象とする最も一般的な方法は、このメタパッケージを参照することです。 それは、.NET Standard を定義する約 40 の .NET ライブラリと関連する API について説明しており、それらにアクセスできるようにしています。 `netstandard` を対象とする追加のパッケージを参照して、追加の API にアクセスできます。 ### バージョン管理 仕様は 1 つだけではありませんが、段階的に拡張され、直線的にバージョン管理された API のセットです。 標準の最初のバージョンは、API のベースライン セットを構築しています。 それ以降のバージョンでは、API が追加され、以前のバージョンによって定義された API を継承しています。 標準から API を削除するために確立された取り決めはありません。 -.NET Standard Library は、1 つの .NET ランタイムに固有ではなく、それらのランタイムのいずれかのバージョン管理スキームに一致することもありません。 +.NET Standard は、1 つの .NET ランタイムに固有ではなく、それらのランタイムのいずれかのバージョン管理スキームに一致することもありません。 -いずれかのランタイム (.NET Framework、.NET Core、Mono など) に追加された API は、本質的に基本的であると考えられる場合に、仕様に追加される候補とみなされる可能性があります。 新しい[.NET Standard Library のバージョン](https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md#list-of-net-corefx-apis-and-their-associated-net-platform-standard-version) は、.NET ランタイムのリリースに基づいて作成されるので、.NET Standard PCL から新しい API を対象にすることができます。 バージョン管理メカニズムの詳細は、「[.NET Core Versioning](../core/versions/index.md)」(.NET Core のバージョン管理) で説明されています。 +いずれかのランタイム (.NET Framework、.NET Core、Mono など) に追加された API は、本質的に基本的であると考えられる場合に、仕様に追加される候補とみなされる可能性があります。 新しい[.NET Standard のバージョン](https://github.com/dotnet/standard/blob/master/docs/versions.md) は、.NET ランタイムのリリースに基づいて作成されるので、.NET Standard PCL から新しい API を対象にすることができます。 バージョン管理メカニズムの詳細は、「[.NET Core Versioning](../core/versions/index.md)」(.NET Core のバージョン管理) で説明されています。 -.NET Standard Library のバージョン管理は、使用する場合に重要です。 .NET Standard Library のバージョンが指定されている場合、それと同じか以下のバージョンを対象とするライブラリを使用できます。 次の方法では、.NET Standard Library の対象設定に固有の、.NET Standard Library PCL の使用のワークフローを説明します。 +.NET Standard のバージョン管理は、使用する場合に重要です。 .NET Standard のバージョンが指定されている場合、それと同じか以下のバージョンを対象とするライブラリを使用できます。 次の方法では、.NET Standard の対象設定に固有の、.NET Standard PCL の使用のワークフローを説明します。 -- PCL に使用する .NET Standard Library のバージョンを選択します。 -- .NET Standard Library と同じかそれ以下のバージョンに依存するライブラリを使用します。 -- それより上の .NET Standard Library バージョンに依存するライブラリを見つけた場合は、それと同じバージョンを採用するか、そのライブラリを使用しないようにする必要があります。 +- PCL に使用する .NET Standard のバージョンを選択します。 +- .NET Standard と同じかそれ以下のバージョンに依存するライブラリを使用します。 +- それより上の .NET Standard バージョンに依存するライブラリを見つけた場合は、それと同じバージョンを採用するか、そのライブラリを使用しないようにする必要があります。 ### PCL 互換性 -.NET Standard Library は、PCL プロファイルのサブセットと互換性があります。 .NET Standard Library 1.0、1.1、1.2 はそれぞれ PCL プロファイルのセットと重複します。 この重複は 2 つの理由で作成されました。 +.NET Standard は、PCL プロファイルのサブセットと互換性があります。 .NET Standard 1.0、1.1、1.2 はそれぞれ PCL プロファイルのセットと重複します。 この重複は 2 つの理由で作成されました。 - .NET Standard ベースの PCL がプロファイルベースの PCL を参照できるようにする。 - プロファイルベースの PCL を .NET Standard ベースの PCL としてパッケージできるようにする。 @@ -116,21 +131,25 @@ NuGet パッケージは 1 つまたは複数の[フレームワーク](framewor 標準 .NET と互換性がある PCL プロファイルのセットを確認できます。 -| Profile | .NET Platform Standard バージョン | -| ---------| --------------- | -| Profile7 .NET ポータブル サブセット (.NET Framework 4.5、Windows 8) | 1.1 | -| Profile31 .NET ポータブル サブセット (Windows 8.1、Windows Phone Silverlight 8.1)| 1.0 | -| Profile32 .NET ポータブル サブセット (Windows 8.1、Windows Phone 8.1) | 1.2 | -| Profile44 .NET ポータブル サブセット (.NET Framework 4.5.1、Windows 8.1) | 1.2 | -| Profile49 .NET ポータブル サブセット (.NET Framework 4.5、Windows Phone Silverlight 8) | 1.0 | -| Profile78 .NET ポータブル サブセット (.NET Framework 4.5、Windows 8、Windows Phone Silverlight 8) | 1.0 | -| Profile84 .NET ポータブル サブセット (Windows Phone 8.1、Windows Phone Silverlight 8.1) | 1.0 | -| Profile111 .NET ポータブル サブセット (.NET Framework 4.5、Windows 8、Windows Phone 8.1) | 1.1 | -| Profile151 .NET ポータブル サブセット (.NET Framework 4.5.1、Windows 8.1、Windows Phone 8.1) | 1.2 | -| Profile157 .NET ポータブル サブセット (Windows 8.1、Windows Phone 8.1、Windows Phone Silverlight 8.1) | 1.0 | -| Profile259 .NET ポータブル サブセット (.NET Framework 4.5、Windows 8、Windows Phone 8.1、Windows Phone Silverlight 8) | 1.0 | - -## .NET Standard Library を対象とする - -`netstandard` フレームワークと NETStandard.Library メタパッケージの組み合わせを使用して、[.NET Standard Library をビルド](../core/tutorials/libraries.md)できます。 [.NET Core ツールを使用して .NET Standard Library を対象とする](../core/packages.md)例を参照できます。 +| PCL プロファイル | .NET Standard | PCL プラットフォーム +|:-----------:|:-------------:|------------------------------------------------------------------------------ +| Profile7 | 1.1 | .NET Framework 4.5、Windows 8 +| Profile31 | 1.0 | Windows 8.1、Windows Phone Silverlight 8.1 +| Profile32 | 1.2 | Windows 8.1、Windows Phone 8.1 +| Profile44 | 1.2 | .NET Framework 4.5.1、Windows 8.1 +| Profile49 | 1.0 | .NET Framework 4.5、Windows Phone Silverlight 8 +| Profile78 | 1.0 | .NET Framework 4.5、Windows 8、Windows Phone Silverlight 8 +| Profile84 | 1.0 | Windows Phone 8.1、Windows Phone Silverlight 8.1 +| Profile111 | 1.1 | .NET Framework 4.5、Windows 8、Windows Phone 8.1 +| Profile151 | 1.2 | .NET Framework 4.5.1、Windows 8.1、Windows Phone 8.1 +| Profile157 | 1.0 | Windows 8.1、Windows Phone 8.1、Windows Phone Silverlight 8.1 +| Profile259 | 1.0 | .NET Framework 4.5、Windows 8、Windows Phone 8.1、Windows Phone Silverlight 8 + + +## .NET Standard を対象とする + +`netstandard` フレームワークと NETStandard.Library メタパッケージの組み合わせを使用して、[.NET Standard Library をビルド](../core/tutorials/libraries.md)できます。 [.NET Core ツールを使用して .NET Standard を対象とする](../core/packages.md)例を参照できます。 + +## 関連項目 +[.NET Standard のバージョン](https://github.com/dotnet/standard/blob/master/docs/versions.md) diff --git a/docs/standard/numerics.md b/docs/standard/numerics.md index dc62319697e..17b9e87e37f 100644 --- a/docs/standard/numerics.md +++ b/docs/standard/numerics.md @@ -1,79 +1,89 @@ --- -title: ".NET Core における数値" -description: ".NET Core における数値" -keywords: .NET, .NET Core -author: rpetrusha -ms.author: ronpet -ms.date: 06/20/2016 -ms.topic: article +title: ".NET Framework における数値 |Microsoft Docs" +ms.custom: +ms.date: 03/30/2017 ms.prod: .net +ms.reviewer: +ms.suite: ms.technology: dotnet-standard -ms.devlang: dotnet -ms.assetid: 6b8696be-55f5-4b66-98f3-69ff827c2c49 -ms.translationtype: Human Translation -ms.sourcegitcommit: 90fe68f7f3c4b46502b5d3770b1a2d57c6af748a -ms.openlocfilehash: 8e2aad830bdaccad6e8184fa462dd0d3157fd6c9 +ms.tgt_pltfrm: +ms.topic: article +helpviewer_keywords: +- SIMD +- System.Numerics.Vectors +- vectors +- scientific computing +- Complex +- numerics +- BigInteger +ms.assetid: dfebc18e-acde-4510-9fa7-9a0f4aa3bd11 +caps.latest.revision: 11 +author: rpetrusha +ms.author: ronpet +manager: wpickett +ms.translationtype: Machine Translation +ms.sourcegitcommit: 19006cc5f24ffc66b92e53e8174c6bd33c249679 +ms.openlocfilehash: 9b62cffb136abde67ab6952e7849e5681ec99a24 ms.contentlocale: ja-jp -ms.lasthandoff: 03/02/2017 - ---- - -# .NET Core における数値 - -.NET Core は、標準の数値整数と浮動小数点プリミティブをサポートしています。さらに、理論上の上限や下限のない整数型の [System.Numerics.BigInteger](https://docs.microsoft.com/dotnet/core/api/System.Numerics.BigInteger)、複素数を表す型の [System.Numerics.Complex](https://docs.microsoft.com/dotnet/core/api/System.Numerics.Complex)、[System.Numerics](https://docs.microsoft.com/dotnet/core/api/System.Numerics) 名前空間の Single Instruction Multiple Data ([SIMD](https://en.wikipedia.org/wiki/SIMD)) 対応ベクター型のセットもサポートしています。 - -## 整数型 - -.NET Core は、1 バイトから 8 バイトの長さの、符号付き整数と符号なし整数の両方をサポートしています。 次の表では、整数型とそのサイズをリストし、符号付きか符号なしかを示し、その範囲を記述しています。 すべての整数は、値型です。 - -型 | 符号付き/符号なし | サイズ (バイト) | 最小値 | 最大値 ----- | --------------- | ------------ | ------------- | ------------- -[System.Byte](https://docs.microsoft.com/dotnet/core/api/System.Byte) | 符号なし | 1 | 0 | 255 -[System.Int16](https://docs.microsoft.com/dotnet/core/api/System.Int16) | 符号付き | 2 | -32,768 | 32,767 -[System.Int32](https://docs.microsoft.com/dotnet/core/api/System.Int32) | 符号付き | 4 | -2,147,483,648 | 2,147,483,647 -[System.Int64](https://docs.microsoft.com/dotnet/core/api/System.Int64) | 符号付き | 9 | -9,223,372,036,854,775,808 | 9,223,372,036,854,775,807 -[System.SByte](https://docs.microsoft.com/dotnet/core/api/System.SByte) | 符号付き | 1 | -128 | 127 -[System.UInt16](https://docs.microsoft.com/dotnet/core/api/System.UInt16) | 符号なし | 2 | 0 | 65,535 -[System.UInt32](https://docs.microsoft.com/dotnet/core/api/System.UInt32) | 符号なし | 4 | 0 | 4,294,967,295 -[System.UInt64](https://docs.microsoft.com/dotnet/core/api/System.UInt64) | 符号なし | 9 | 0 | 18,446,744,073,709,551,615 - -各整数型は、算術、比較、等価、明示的な変換、および暗黙的な変換の演算子の標準セットをサポートします。 各整数には、等価比較と相対比較、数値の文字列形式から整数への変換、および整数から文字列形式への変換を実行するメソッドも含まれています。 丸め処理や 2 つの整数のより小さいか大きい値の識別など、標準の演算子によって処理される上記以外の数値演算は、[System.Math](https://docs.microsoft.com/dotnet/core/api/System.Math) クラスから使用可能です。 [System.BitConverter](https://docs.microsoft.com/dotnet/core/api/System.BitConverter) クラスを使用して、整数値の個々のビットを操作することもできます。 - -符号なし整数型が CLS に準拠していないことに注意してください。 詳細については、[.NET 共通型システムと共通言語仕様](common-type-system.md)に関するページを参照してください。 - -## 浮動小数点型 - -.NET Core には、次の表に示す 3 つプリミティブ浮動小数点型が含まれています。 - -型 | サイズ (バイト) | 最小値 | 最大値 ----- | ------------ | ------------- | ------------- -[System.Double](https://docs.microsoft.com/dotnet/core/api/System.Double) | 9 | -1.79769313486232e308 | 1.79769313486232e308 -[System.Single](https://docs.microsoft.com/dotnet/core/api/System.Single) | 4 | -3.402823e38 | 3.402823e38 -[System.Decimal](https://docs.microsoft.com/dotnet/core/api/System.Decimal) | 16 | -79,228,162,514,264,337,593,543,950,335 | 79,228,162,514,264,337,593,543,950,335 - -各浮動小数点型は、算術、比較、等価、明示的な変換、および暗黙的な変換の演算子の標準セットをサポートします。 それぞれには、等価比較と相対比較、数値の文字列形式から浮動小数点数への変換、および浮動小数点数から文字列形式への変換を実行するメソッドも含まれています。 いくつかの追加の数学、代数、および三角関数の演算も、`Math` クラスから使用可能です。 `BitConverter` クラスを使用して、`Double` および `Single` の値の個々のビットを操作することもできます。 `Decimal` 構造体には、10 進値の個々のビットを操作するための独自のメソッド (`Decimal.GetBits` と `Decimal.Decimal(Int32())`)、および追加の数学演算を実行するための独自のメソッド セットがあります。 - -`Double` と `Single` の型は、本来正確ではない値 (太陽系の 2 つの星の間の距離など)、および高い精度や小さな丸め誤差の検出が必要ではないアプリケーションでの使用が想定されています。 より高い精度が要求され、丸め誤差が許容されないケースでは、`Decimal` 型を使用する必要があります。 - -## BigInteger - -[System.Numerics.BigInteger](https://docs.microsoft.com/dotnet/core/api/System.Numerics.BigInteger) は、理論的には値に上限や下限がない、サイズの大きい任意の整数を表す不変の型です。 `BigInteger` 型のメソッドは、他の整数型のメソッドとかなり類似しています。 - -## 複合 - -[System.Numerics.Complex](https://docs.microsoft.com/dotnet/core/api/System.Numerics.Complex) 型は、複素数つまり実数部と虚数部のある数を表します。 これは、算術、比較、等価、明示的な変換、および暗黙的な変換の演算子の標準セットをサポートします。さらに数学、代数、および三角関数のメソッドもサポートします。 - -## SIMD 対応ベクター型 - -`System.Numerics` 名前空間には、.NET Core 用の SIMD 対応ベクター型のセットが含まれています。 SIMD では、一部の操作をハードウェア レベルで並列に処理できます。その結果、ベクターに対して計算を実行する数値演算アプリ、科学系アプリ、グラフィックス アプリでは、パフォーマンスが大幅に向上します。 - -.NET Core の SIMD 対応ベクター型には、次のものが含まれます。 - -* `Single` 型の 2、3、および 4 次元ベクターである [System.Numerics.Vector2](https://docs.microsoft.com/dotnet/core/api/System.Numerics.Vector2)、[System.Numerics.Vector3](https://docs.microsoft.com/dotnet/core/api/System.Numerics.Vector3)、および [System.Numerics.Vector4](https://docs.microsoft.com/dotnet/core/api/System.Numerics.Vector4)。 - -* 任意のプリミティブな数値型のベクターを作成できる [Vector<T>](https://docs.microsoft.com/dotnet/core/api/System.Numerics.Vector-1) 構造体。 プリミティブな数値型には、Decimal を除く System 名前空間のすべての数値型が含まれます。 - -* 3 x 2 行列を表す [System.Numerics.Matrix3x2](https://docs.microsoft.com/dotnet/core/api/System.Numerics.Matrix3x2) と、4 x 4 行列を表す [System.Numerics.Matrix4x4](https://docs.microsoft.com/dotnet/core/api/System.Numerics.Matrix4x4) の 2 つのマトリックス型。 - -* 3 次元平面を表す [System.Numerics.Plane](https://docs.microsoft.com/dotnet/core/api/System.Numerics.Plane) 型と 3 次元物理回転をエンコードするために使用されるベクターを表す [System.Numerics.Quaternion](https://docs.microsoft.com/dotnet/core/api/System.Numerics.Quaternion) 型。 +ms.lasthandoff: 05/11/2017 +--- +# .NET Framework における数値 +.NET Framework は、標準の数値整数と浮動小数点型のプリミティブをサポートしています。さらに、理論上の上限や下限のない整数型の 、複素数を表す型の 名前空間の SIMD が有効なベクター型のセットもサポートしています。 + + さらに、ベクター型の SIMD 対応ライブラリ System.Numerics.Vectors は、NuGet パッケージとしてリリースされました。 + +## 整数型 + .NET Framework は、1 バイトから 8 バイトの長さの、符号付き整数と符号なし整数の両方をサポートしています。 次の表では、整数型とそのサイズをリストし、符号付きか符号なしかを示し、その範囲を記述しています。 すべての整数は、値型です。 + +|型|符号付き/符号なし|サイズ (バイト)|最小値|最大値| +|----------|----------------------|--------------------|-------------------|-------------------| +||符号なし|1|0|255| +||符号付き|2|-32,768|32,767| +||符号付き|4|-2,147,483,648|2,147,483,647| +||符号付き|9|-9,223,372,036,854,775,808|9,223,372,036,854,775,807| +||符号付き|1|-128|127| +||符号なし|2|0|65,535| +||符号なし|4|0|4,294,967,295| +||符号なし|9|0|18,446,744,073,709,551,615| + + 各整数型は、算術、比較、等価、明示的な変換、および暗黙的な変換の演算子の標準セットをサポートします。 各整数には、等価比較と相対比較、数値の文字列形式から整数への変換、および整数から文字列形式への変換を実行するメソッドも含まれています。 丸め処理や 2 つの整数のより小さいか大きい値の識別など、標準の演算子によって処理される上記以外の数値演算は、 クラスから使用可能です。 クラスを使用して、整数値の個々 のビットを操作することもできます。 + + 符号なし整数型が CLS に準拠していないことに注意してください。 詳しくは、「[言語への非依存性、および言語非依存コンポーネント](../../docs/standard/language-independence-and-language-independent-components.md)」を参照してください。 + +## 浮動小数点型 + .NET Framework には、次の表にリストされている 3 つプリミティブ浮動小数点型が含まれています。 + +|型|サイズ (バイト単位)|最小要件|最大| +|----------|-----------------------|-------------|-------------| +||9|-1.79769313486232e308|1.79769313486232e308| +||4|-3.402823e38|3.402823e38| +||16|-79,228,162,514,264,337,593,543,950,335|79,228,162,514,264,337,593,543,950,335| + + 各浮動小数点型は、算術、比較、等価、明示的な変換、および暗黙的な変換の演算子の標準セットをサポートします。 それぞれには、等価比較と相対比較、数値の文字列形式から浮動小数点数への変換、および浮動小数点数から文字列形式への変換を実行するメソッドも含まれています。 いくつかの追加の数学、代数、および三角関数の演算も、 クラスから使用可能です。 クラスを使用して、 および の値の個々のビットを操作することもできます。 構造体には、10 進値の個々のビットを操作するための独自のメソッド ()、および追加の数学演算を実行するための独自のメソッド セットがあります。 + + の型は、本来正確ではない値 (太陽系の 2 つの星の間の距離など)、および高い精度や小さな丸め誤差の検出が必要ではないアプリケーションでの使用が想定されています。 より高い精度が要求され、丸め誤差が許容されないケースでは、 の型を使用する必要があります。 + +## BigInteger + は、理論的には値に上限や下限がない、サイズの大きい任意の整数を表す不変の型です。 型のメソッドは、他の整数型のメソッドとかなり類似しています。 + +## 複合 + 型は、複素数つまり実数部と虚数部のある数を表します。 これは、算術、比較、等価、明示的な変換、および暗黙的な変換の演算子の標準セットをサポートします。さらに数学、代数、および三角関数のメソッドもサポートします。 + +## SIMD 対応ベクター型 + 名前空間には、.NET Framework 用の SIMD 対応ベクター型のセットが含まれています。 SIMD (Single Instruction Multiple Data operations) では、一部の操作をハードウェア レベルで並列に処理できます。その結果、ベクターに対して計算を実行する数値演算アプリ、科学系アプリ、グラフィックス アプリでは、パフォーマンスが大幅に向上します。 + + .NET Framework の SIMD 対応ベクター型には、次のものが含まれます。 さらに、System.Numerics.Vectors には、平面型と四元数型が含まれます。 + +- 型、 型、 型。それぞれ 型の 2 次元ベクター、3 次元ベクター、4 次元ベクターです。 + +- 2 つのマトリックス型。3x2 行列を表す と、4x4 行列を表す です。 + +- 型と 型。 + + SimD 対応のベクター型は IL に実装されているので、これを SimD 非対応のハードウェアや JIT コンパイラで使用できます。 SIMD 命令の利点を活用するために、64 ビットのアプリはマネージ コード用の新しい 64 ビット JIT コンパイラ (.NET Framework 4.6 に含まれる) でコンパイルする必要があります。これは、x64 プロセッサがターゲットの場合に SIMD のサポートを追加します。 + + SIMD は [NuGet パッケージ](http://www.nuget.org/packages/System.Numerics.Vectors)としてもダウンロードできます。 NuGET パッケージには、ジェネリック 構造体も含まれています。この構造体を使用すると、任意のプリミティブな数値型のベクターを作成できます。 (プリミティブな数値型には、 を除く 名前空間のすべての数値型が含まれます。)さらに、 構造体は、ベクターを使用しているときに呼び出すことのできる便利なメソッドのライブラリを提供します。 + +## 関連項目 + [アプリケーションの基本事項](../../docs/standard/application-essentials.md)