34 lines
1.4 KiB
C#
34 lines
1.4 KiB
C#
|
namespace InnovEnergy.Units;
|
||
|
|
||
|
public readonly struct Current
|
||
|
{
|
||
|
public static String Unit => "A";
|
||
|
public static String Symbol => "I";
|
||
|
|
||
|
public Decimal Value { get; }
|
||
|
|
||
|
public Current(Decimal value) => Value = value;
|
||
|
|
||
|
public override String ToString() => Value + Unit;
|
||
|
|
||
|
|
||
|
// parallel
|
||
|
public static Current operator |(Current left, Current right) => new Current(left.Value + right.Value);
|
||
|
|
||
|
// scalar multiplication
|
||
|
public static Current operator *(Decimal scalar , Current current) => new Current(scalar * current.Value);
|
||
|
public static Current operator *(Current current, Decimal scalar) => new Current(scalar * current.Value);
|
||
|
public static Current operator *(Int32 scalar , Current current) => new Current(scalar * current.Value);
|
||
|
public static Current operator *(Current current, Int32 scalar) => new Current(scalar * current.Value);
|
||
|
public static Current operator /(Current current, Decimal scalar) => new Current(current.Value / scalar);
|
||
|
public static Current operator /(Current current, Int32 scalar) => new Current(current.Value / scalar);
|
||
|
|
||
|
// P=UI
|
||
|
public static Power operator *(Current current, Voltage voltage) => new Power(current.Value * voltage.Value);
|
||
|
|
||
|
// U=RI
|
||
|
public static Voltage operator *(Current current, Resistance resistance) => new Voltage(resistance.Value* current.Value);
|
||
|
|
||
|
|
||
|
|
||
|
}
|