Main()の最後の行では、ポインタの処理をしようとしたときにエラーが発生しますが、実際にやっているのはFooクラス内で定義した乗算演算子です。それが乗算を呼び出すための構文ではない場合、それは何ですか?逆参照*対乗法*あいまいさ
namespace test
{
class Program
{
class Foo
{
int foo;
public Foo(int n)
{
foo = n;
}
public static object operator *(Foo a,Foo b)
{
return new Foo(a.foo * b.foo);
}
}
static void Main(string[] args)
{
Foo a = new Foo(2);
Foo b = new Foo(3);
a * b;
}
}
}
私はそれが何かばかだと確信していますが、私はそれを見ません。
あなたは何かに乗算の結果を割り当てる必要があります。あなたは 'a * b'だけを置くことはできません。これは同じエラーを返します: 'int x = 1; int y = 2; x * y; ' –
おそらく演算子の結果を代入しますか? var result = a * b; – Diado
無関係ですが、おそらく 'operator *'が 'object'ではなく' Foo'を返すようにしてください。そうすれば、 'a * b * c'も動作します(' object'と 'Foo'の演算子を持たないというエラーを出すのではなく)。 –