Вы можете перегрузить оператор в C #
Если вы используете оператор в powershell, будет использоваться перегруженный оператор c #
// overloading + operator
public static Nimber operator +(Nimber left, Nimber right)
{
var length = (left.List.Count > right.List.Count) ? left.List.Count : right.List.Count;
var list = new int[length];
for (int i = 0; i < left.List.Count; i++)
{
list[i] = left.List[i];
}
for (int i = 0; i < right.List.Count; i++)
{
list[i] += right.List[i];
}
return new Nimber(list);
}
использование posershell
Add-Type -Path $TheAssemblyPath
$n1 = New-Object nim.nimber (1,2,4)
$n2 = New-Object nim.nimber (10,20,40,50)
"n1=$n1 and n2=$n2"
$n3 = $n1 + $n2
"n3=$n3"
и вывод
n1=1, 2, 4 and n2=10, 20, 40, 50
n3=11, 22, 44, 50