C# 演算子のオーバーロードで原因の不明の例外が発生する原因を知りたい。
提示コードを実行するとtest
クラスのコンストラクターで例外が発生する原因を知りたいです。
演算子のオーバーロードをコメントにするとエラーがなくなりますので演算子のオーバーロードが原因と思われますが。対処法がわからず困っています。
また
try catch
構文を使ってその例外を出力したいのですがクラス内ではその構文がエラーになるため
使えません、
出力方法と解決法、原因などを教えてくれますでしょうか?
namespace ConsoleApp1
{
class Program
{
//delegate void test_del(ref int t);
class test
{
public int x { get; set; }
public test() { }
public static test operator +(test a, test b)
{
//Console.WriteLine("演算子+");
test t = new test();
a.x = 3;
t = a + b;
return t;
}
public void output()
{
Console.WriteLine("x:" + x);
}
}
static void Main(string[] args)
{
try
{
test a = new test();
test b = new test();
test c = new test();
c = a + b;
c.output();
}catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadKey();
}
}
}