# CalcLib

# 1 型

## 1.1 CalcLib::CalcKind

計算演算の種別を表します。

列挙子 | 値 | 説明
--- | --- | ---
Add | 1 | 加算演算 (a + b)。
Subtract | 2 | 減算演算 (a - b)。
Multiply | 3 | 乗算演算 (a * b)。
Divide | 4 | 除算演算 (a / b)。

# 2 クラス/構造体

## 2.1 CalcLib::CalcException

計算演算が失敗した際にスローされる例外。

### 2.1.1 関数

#### 2.1.1.1 CalcException

    CalcException ( int errorCode, string message )

CalcException クラスの新しいインスタンスを初期化します。

### 2.1.2 引数

- errorCode ネイティブライブラリから返されたエラーコード。
- message 失敗を説明するエラーメッセージ。

#### 2.1.2.1 CalcException

    CalcException ( int errorCode, string message, Exception innerException )

CalcException クラスの新しいインスタンスを初期化します。

### 2.1.3 引数

- errorCode ネイティブライブラリから返されたエラーコード。
- message 失敗を説明するエラーメッセージ。
- innerException この例外の原因となった例外。

### 2.1.4 プロパティ

#### 2.1.4.1 ErrorCode

    int ErrorCode;

ネイティブライブラリから返されたエラーコードを取得します。

## 2.2 CalcLib::CalcLibrary

ネイティブ calc ライブラリを使用して基本的な整数演算を実行するための メソッドを提供します。

### 2.2.1 関数

#### 2.2.1.1 Calculate

    static CalcResult Calculate ( CalcKind kind, int a, int b )

指定された演算種別に基づいて計算を実行します。

    var result = CalcLibrary.Calculate(CalcKind.Add, 10, 20);
    if (result.IsSuccess)
    {
        Console.WriteLine($"Result: {result.Value}"); // 出力: 30
    }
    else
    {
        Console.WriteLine($"Error: {result.ErrorCode}");
    }

### 2.2.2 引数

- kind 実行する計算の種別。
- a 第一オペランド。
- b 第二オペランド。

### 2.2.3 戻り値

結果またはエラー情報を含む CalcResult。 演算が成功したかどうかは CalcResult.IsSuccess で判定してください。

#### 2.2.3.1 CalculateOrThrow

    static int CalculateOrThrow ( CalcKind kind, int a, int b )

計算を実行し、失敗した場合は例外をスローします。

    try
    {
        int result = CalcLibrary.CalculateOrThrow(CalcKind.Divide, 10, 0);
    }
    catch (CalcException ex)
    {
        Console.WriteLine($"Calculation failed: {ex.Message}");
    }

### 2.2.4 引数

- kind 実行する計算の種別。
- a 第一オペランド。
- b 第二オペランド。

### 2.2.5 例外

##### 2.2.5.0.1 CalcException 計算が失敗した場合 (例: ゼロ除算または無効な演算種別)。

### 2.2.6 戻り値

計算結果。

#### 2.2.6.1 Add

    static CalcResult Add ( int a, int b )

2 つの整数を加算します。

    var result = CalcLibrary.Add(5, 3);
    Console.WriteLine(result.Value); // 出力: 8

### 2.2.7 引数

- a 第一オペランド。
- b 第二オペランド。

### 2.2.8 戻り値

和またはエラー情報を含む CalcResult。

#### 2.2.8.1 Subtract

    static CalcResult Subtract ( int a, int b )

第一の整数から第二の整数を減算します。

    var result = CalcLibrary.Subtract(10, 4);
    Console.WriteLine(result.Value); // 出力: 6

### 2.2.9 引数

- a 第一オペランド (被減数)。
- b 第二オペランド (減数)。

### 2.2.10 戻り値

差またはエラー情報を含む CalcResult。

#### 2.2.10.1 Multiply

    static CalcResult Multiply ( int a, int b )

2 つの整数を乗算します。

    var result = CalcLibrary.Multiply(6, 7);
    Console.WriteLine(result.Value); // 出力: 42

### 2.2.11 引数

- a 第一オペランド。
- b 第二オペランド。

### 2.2.12 戻り値

積またはエラー情報を含む CalcResult。

#### 2.2.12.1 Divide

    static CalcResult Divide ( int a, int b )

第一の整数を第二の整数で除算します。

整数除算を実行します。ゼロ除算の場合はエラーとなります (CalcResult.IsSuccess は false)。

    var result = CalcLibrary.Divide(20, 5);
    if (result.IsSuccess)
    {
        Console.WriteLine(result.Value); // 出力: 4
    }

    var errorResult = CalcLibrary.Divide(10, 0);
    Console.WriteLine(errorResult.IsSuccess); // 出力: False

### 2.2.13 引数

- a 第一オペランド (被除数)。
- b 第二オペランド (除数)。

### 2.2.14 戻り値

商またはエラー情報を含む CalcResult。

## 2.3 CalcLib::CalcResult

計算演算の結果を表します。

### 2.3.1 プロパティ

#### 2.3.1.1 IsSuccess

    bool IsSuccess;

演算が成功したかどうかを示す値を取得します。

#### 2.3.1.2 Value

    int Value;

計算結果の値を取得します。 この値は IsSuccess が true の場合のみ有効です。

#### 2.3.1.3 ErrorCode

    int ErrorCode;

演算が失敗した場合のエラーコードを取得します。 0 (CALC_SUCCESS) は成功を、-1 (CALC_ERROR) は失敗を示します。