サンプル C# コンソール アプリケーションでマイナス演算子をオーバーロードしようとして-
いますが、理解できないエラーが発生します。私はこの本から学んでいますが、正誤表にはこれがタイプミスまたはエラーとしてリストされていません。オーバーロードされ+
た演算子は正常に機能しますが、そうで-
はありません。
私が間違っていることについてのアイデアはありますか?
namespace ConsoleApplication1
{
class AddClass1
{
public int val;
public static AddClass1 operator +(AddClass1 p1, AddClass1 p2)
{
AddClass1 returnVal = new AddClass1();
returnVal.val = p1.val + p2.val;
return returnVal;
}
public static AddClass1 operator -(AddClass1 p1)
{
AddClass1 returnVal = new AddClass1();
returnVal.val = -p1.val;
return returnVal;
}
}
class Program
{
static void Main(string[] args)
{
AddClass1 i = new AddClass1();
i.val = 10;
AddClass1 j = new AddClass1();
j.val = 5;
AddClass1 sum = i + j;
AddClass1 difference = i - j;
Console.WriteLine(sum.val);
Console.WriteLine(difference.val);
}
}
}
エラー
Error 1 Operator '-' cannot be applied to operands of type 'ConsoleApplication1.AddClass1' and 'ConsoleApplication1.AddClass1' c:\users\admin\documents\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs 37 36 ConsoleApplication1
この行で
AddClass1 difference = i - j;