13,114
回編集
| 3行目: | 3行目: | ||
<br><br> | <br><br> | ||
== ライブラリの明示的な読み込み == | == ライブラリの読み込み == | ||
==== ライブラリの作成 ==== | |||
* Rider | |||
*# [ファイル]メニューバー - [新規作成] - [プロジェクト]を選択する。 | |||
*# [新しいプロジェクト]画面にて、[クラスライブラリ(.NET Standard)]、または、[クラスライブラリ(.NET Framework)]を選択する。 | |||
*# ソリューション名を入力して、[OK]ボタンを押下する。 | |||
*: <br> | |||
* Visual Studio | |||
*# [ファイル]メニューバー - [新規作成] - [プロジェクト]を選択する。 | |||
*# [新しいプロジェクト]画面にて、[クラスライブラリ(.NET Standard)]、または、[クラスライブラリ(.NET Framework)]を選択する。 | |||
*# ソリューション名を入力して、[OK]ボタンを押下する。 | |||
<br> | |||
<syntaxhighlight lang="c#"> | |||
// クラスライブラリ | |||
namespace SampleLibrary | |||
{ | |||
public class SampleClass | |||
{ | |||
public int SampleMethod(int i, int j) => i + j; | |||
} | |||
} | |||
</syntaxhighlight> | |||
<br> | |||
==== ライブラリの暗黙的な読み込み ==== | |||
* Rider | |||
*# 画面左ペインにある[ソリューション]からプロジェクト名を右クリックして、[追加] - [参照...]を選択する。 | |||
*# [参照の追加]画面が開くので、[追加(A)...]ボタンを押下して、追加するライブラリファイルを選択する。 | |||
*# [OK]ボタンを押下する。 | |||
*# 画面左ペインにある[ソリューション]を展開して、<プロジェクト名> - <依存関係> - <.NET バージョン> - <アセンブリ>内にライブラリファイル名が追加される。 | |||
*: <br> | |||
* Visual Studio | |||
*# [ソリューションエクスプローラー] - [参照]を右クリックして、コンテキストメニューから[参照の追加]を選択する。 | |||
*# [参照マネージャー]画面が開くので、[参照]ボタンを押下して、追加するライブラリファイルを選択する。 | |||
*# [参照マネージャー]画面の[参照]にライブラリファイル名が追加される。 | |||
*# [OK]ボタンを押下する。 | |||
<br> | |||
<syntaxhighlight lang="c#"> | |||
using <ライブラリの名前空間名 例: SampleLibrary>; | |||
// クラスライブラリのオブジェクトを生成 | |||
// ただし、Staticクラスの場合は生成は不要 | |||
var sampleClass = new <ライブラリのクラス名 例: SampleClass>(); | |||
// クラスライブラリのメソッドを実行 | |||
// <ライブラリのクラス名>.<メソッド名>(引数 1, 引数 2, ...); | |||
sampleClass.SampleMethod(); | |||
</syntaxhighlight> | |||
<br> | |||
==== ライブラリの明示的な読み込み ==== | |||
ライブラリの明示的な読み込みは、プラグインを設計する場合等に便利である。<br> | ライブラリの明示的な読み込みは、プラグインを設計する場合等に便利である。<br> | ||
<br> | <br> | ||
| 20行目: | 69行目: | ||
// クラスの完全修飾名(アセンブリ内のクラスの型)を取得 | // クラスの完全修飾名(アセンブリ内のクラスの型)を取得 | ||
// <名前空間名>.<クラス名> | // <名前空間名>.<クラス名> | ||
// 上記のサンプルライブラリの場合 --> var sampleType = assembly.GetType("SampleLibrary.SampleClass"); | |||
var sampleType = assembly.GetType("<名前空間名>.<クラス名>"); | var sampleType = assembly.GetType("<名前空間名>.<クラス名>"); | ||
| 25行目: | 75行目: | ||
{ | { | ||
// 通常のクラスの場合 | // 通常のクラスの場合 | ||
// 例: コンストラクタへ引数を渡す場合 --> var instance = Activator.CreateInstance(sampleType, <コンストラクタの引数 1>, <コンストラクタの引数 2>, ...); | // 例: コンストラクタへ引数を渡す場合 --> var instance = Activator.CreateInstance(sampleType, <コンストラクタの引数 1>, <コンストラクタの引数 2>, ...); | ||
// 上記のサンプルライブラリの場合 --> var instance = Activator.CreateInstance(sampleType); | |||
// ただし、Staticクラスの場合は不要 | // ただし、Staticクラスの場合は不要 | ||
var instance = Activator.CreateInstance(sampleType); | var instance = Activator.CreateInstance(sampleType); | ||
// クラスのメソッド名を取得 | // クラスのメソッド名を取得 | ||
// 上記のサンプルライブラリの場合 --> var method = sampleType.GetMethod("SampleMethod"); | |||
var method = sampleType.GetMethod("<メソッド名>"); | var method = sampleType.GetMethod("<メソッド名>"); | ||
| 36行目: | 88行目: | ||
// メソッドに引数がある場合 | // メソッドに引数がある場合 | ||
// 例: 引数がint, stringの2つ存在する場合 --> var args = new object[] { 5, "hoge" }; | // 例: 引数がint, stringの2つ存在する場合 --> var args = new object[] { 5, "hoge" }; | ||
// 上記のサンプルライブラリの場合 --> var args = new object[] { 10, 20 }; | |||
var args = new object[] { <引数1>, <引数2>, ... }; | var args = new object[] { <引数1>, <引数2>, ... }; | ||
| 61行目: | 114行目: | ||
} | } | ||
} | } | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br><br> | <br><br> | ||