Dotnet-core-create-standard-library
.NET Core-.NET標準ライブラリの作成
クラスライブラリは、任意のアプリケーションから呼び出すことができるタイプとメソッドを定義します。
- .NET Coreを使用して開発されたクラスライブラリは、.NET標準ライブラリをサポートします。これにより、そのバージョンの.NET標準ライブラリをサポートする任意の.NETプラットフォームからライブラリを呼び出すことができます。
- クラスライブラリを完成したら、サードパーティコンポーネントとして配布するか、1つ以上のアプリケーションにバンドルされているコンポーネントとして含めるかを決定できます。
コンソールアプリケーションにクラスライブラリプロジェクトを追加することから始めましょう。ソリューションエクスプローラーで src フォルダーを右クリックし、*追加→新規プロジェクト…*を選択します。
[新しいプロジェクトの追加]ダイアログボックスで、.NET Coreノードを選択してから、クラスライブラリ(.NET Core)プロジェクトテンプレートを選択します。
次の図に示すように、「名前」テキストボックスにプロジェクトの名前として「UtilityLibrary」と入力します。
[OK]をクリックして、クラスライブラリプロジェクトを作成します。 プロジェクトが作成されたら、新しいクラスを追加しましょう。 ソリューションエクスプローラーで*プロジェクト*を右クリックし、*追加→クラス… *を選択します。
中央のペインでクラスを選択し、名前とフィールドにStringLib.csを入力して、[追加]をクリックします。 クラスを追加したら、StringLib.csファイルの次のコードを置き換えます。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace UtilityLibrary {
public static class StringLib {
public static bool StartsWithUpper(this String str) {
if (String.IsNullOrWhiteSpace(str))
return false;
Char ch = str[0];
return Char.IsUpper(ch);
}
public static bool StartsWithLower(this String str) {
if (String.IsNullOrWhiteSpace(str))
return false;
Char ch = str[0];
return Char.IsLower(ch);
}
public static bool StartsWithNumber(this String str) {
if (String.IsNullOrWhiteSpace(str))
return false;
Char ch = str[0];
return Char.IsNumber(ch);
}
}
}
- クラスライブラリ UtilityLibrary.StringLib には、 StartsWithUpper 、 StartsWithLower 、 StartsWithNumber などのメソッドが含まれています。これらのメソッドは、現在の文字列インスタンスがそれぞれ大文字、小文字、数字で始まるかどうかを示すブール値を返します。
- .NET Coreでは、文字が大文字の場合、 Char.IsUpper メソッドはtrueを返し、文字が小文字の場合、Char.IsLowerメソッドはtrueを返します。同様に、文字が数値の場合、Char.IsNumberメソッドはtrueを返します。
- メニューバーで、[ビルド]、[ソリューションのビルド]を選択します。 プロジェクトはエラーなしでコンパイルされます。
- .NET Coreコンソールプロジェクトは、クラスライブラリにアクセスできません。
- このクラスライブラリを使用するには、コンソールプロジェクトにこのクラスライブラリの参照を追加する必要があります。
これを行うには、FirstAppを展開して[参照設定]を右クリックし、[参照の追加…*]を選択します
[参照マネージャー]ダイアログボックスで、クラスライブラリプロジェクトのUtilityLibraryを選択し、[OK]をクリックします。
コンソールプロジェクトのProgram.csファイルを開き、すべてのコードを次のコードに置き換えます。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using UtilityLibrary;
namespace FirstApp {
public class Program {
public static void Main(string[] args) {
int rows = Console.WindowHeight;
Console.Clear();
do {
if (Console.CursorTop >= rows || Console.CursorTop == 0) {
Console.Clear();
Console.WriteLine("\nPress <Enter> only to exit; otherwise, enter a string and press <Enter>:\n");
}
string input = Console.ReadLine();
if (String.IsNullOrEmpty(input)) break;
Console.WriteLine("Input: {0} {1,30}: {2}\n", input, "Begins with uppercase? ",
input.StartsWithUpper() ? "Yes" : "No");
} while (true);
}
}
}
アプリケーションを実行すると、次の出力が表示されます。
理解を深めるために、プロジェクトでクラスライブラリの他の拡張メソッドを利用してみましょう。