セグメントを一緒に追加してパスを形成する+演算子をオーバーロードしたい。 私は、Tがセグメントであり、リスト(自然にTがセグメントである)を含むパスを定義しました。セグメントは、さまざまな種類のセグメント、すなわちLineSegmentの抽象基本クラスです。演算子のオーバーロード多型がジェネリックコレクションを返す
オーバーロードされたメソッドConnectedがあり、セグメントに共通のエンドポイントがあるかどうかがチェックされます。抽象セグメントクラスで2つのセグメントのオーバーロードを定義し、次にそれぞれの派生クラス内の異なるタイプ、つまりセグメントとラインセグメントに対してオーバーロードを定義したいと思います。私は、次のコードを交換しようとしている
だから、基本的に...
@ジョン
public static Path<T> operator +(Segment s1, Segment s2)
{
if (s1.Connected(s2))
{
List<Segment> slist = new List<Segment>();
slist.Add(s1);
slist.Add(s2);
Path<T> p = new Path<T>(slist);
return p;
}
else
{
return null;
}
}
(パス1は、セグメントTはセグメントであるリストで、パスです)。
Path<T> path1 = s1 + s2;
と
Path<T> path1 = new Path<T>(s1);
path1.Segments.Add(s2);
問題は、コードをコンパイルしていないということです。
何が問題ですか?ところで、あなたの入力値をNULL値と比較してチェックしておらず、実行時に失敗するかもしれません。 –
あなたはまだ問題が何であるか説明しませんでした。あなたの現在のコードは動作しますか?そうでない場合は、エラー、例外などをコンパイルするのは何ですか? – svick