漢字で書くと何やらゴツい感じですが、要するに、= と ==? のことです。
え?、良くわかりませんか?
if (i == 5) {
int j = 2;
}
上には、= が出てきますが、== は比較で、 = は代入なのですよね。
C系の言語って、こういうところが洗練されていて好きなんですよね。
If (i = 5) Then
Dim i As Integer = 2;
End if
VBだと、こんな感じになるんでしたっけ?(←なんだ、このとぼけっぷりは)
で、何が言いたいかと言うと、先ほど C# でTableAdapter なクラスを作っていて、気がつくと以下のようなものがあったのですよ。
private MySqlCommand CreateDeleteCommand() {
MySqlCommand r = new MySqlCommand();
r.Connection = this.Connection;
r.CommandText = (
@"DELETE FROM `ItemMaster` WHERE (" +
@"(`Code` = ?) AND " +
@"((? = 1 AND `Name` IS NULL) OR (`Name`?= ?)) AND " +
@"((??= 1 AND `Unit` IS NULL) OR (`Unit`?= ?)))"
);
r.CommandType = CommandType.Text;
MySqlDbType t = MySqlDbType.VarChar;
DataRowVersion v = DataRowVersion.Original;
r.Parameters.Add(this.CreateParameter("Original_Code", t, "Code", v, false));
r.Parameters.Add(this.CreateParameter("IsNull_Name", t, "Name", v, true));
r.Parameters.Add(this.CreateParameter("Original_Name", t, "Name", v, false));
r.Parameters.Add(this.CreateParameter("IsNull_Unit", t, "Unit", v, true));
r.Parameters.Add(this.CreateParameter("Original_Unit", t, "Unit", v, false));
return r;
}
へぇ~、MySQL使ってるんだ~、と思った人は過去ログを読んでいない人。
やっぱり、== な表現になれちゃうと気持ち悪いですね。
って、そんな話題でした。(特に意味の無い話でした)