私はここ数ヶ月にわたって、試行錯誤やたくさんのgoogle/stackoverflow検索を使ってC#を教えてきましたが、ここで何が起こっているのかは分かりません。私の前回のコーディング経験は、UdacityのCS101コースの3年以上前のことです。これには基本的なPythonが含まれていましたが、そのほとんどはC#を始めた頃には忘れ去られていました。C#なぜ "If(Tuple == Class1.Tuple)"は機能しませんが、 "If(Tuple.Item1 == Class1.Tuple.Item1 && Tuple.Item2 == Class1.Tuple.Item2)"は機能しますか?
class Class1
{
public Tuple<int, int> StoredLoc = Tuple.Create(12, 6);
}
public partial class MainWindow : Window
{
Class1 Cls1 = new Class1();
private bool CheckLocation(int x, int y) //x = 12, y = 6
{
Tuple<int, int> loc = Tuple.Create(x, y);
//This Does Not work
if (loc == Cls1.StoredLoc)
{
//Do Code
}
//This Does Work
if (loc.Item1 == Cls1.StoredLoc.Item1 && loc.Item2 == Cls1.StoredLoc.Item2)
{
//Do code
}
}
}
私はここで何が欠けていますか? loc == Cls1.StoredLoc
はなぜ機能しないのですか?こと、loc.Equals(Cls1.StoredLoc)
:
参考までに比較します。これはここでは同じではありません。 [値の種類と参照の種類](https://msdn.microsoft.com/en-us/library/t63sy5hs.aspx) – Ben
ちょうど提案: 'System.Windows.Point'または' System.Drawing.Point '(タプルの代わりにあなたが持っているアプリケーションのタイプによって)。 – devuxer