C# に限らず、ソースファイルでは修正時に過去のソースをコメントアウトとして残し、コメントで情報を添えることで変更履歴を残す風習はいたるところで見られます。
バージョン管理システムが普及している今、そういう考え方はよしとされない傾向もあります。
では、ASPX のようなデザインとロジックが一体化したファイルの場合、不必要になった・変更になったコントロールはどうしますか?
ほとんどの場合、すっぱり削除するのが多いと思います。私もそうします。
しかし、中には以下のようなことをやるのも見たことがあります。
・<%-- <asp:Label id="lbl" runat="server">hoge</asp:Label> --%>
正しいコメントアウトだと思います。
ですが、クライアントに空白や空行として送信されてしまうのが、個人的には好きじゃありません。
・Visible を false
クライアントの HTML には反映されませんが、インスタンスは作られるしコントロールに対する処理も実行されるのでムダですね。
・<!-- <asp:Label id="lbl" runat="server">hoge</asp:Label> -->
なんか勘違いしてますね、これ書いた人は勉強しなおしたほうがいいと思います。
インスタンスは作られて、コントロールに対する処理も実行される上でなく、クライアントの HTML にも埋め込まれます。
ブラウザが見えなくしてるだけです。
で、先日現場で上記のどれでもないコメントアウトを見つけました。
それが・・・・・コレだ
One, Two, Three
<%/* <asp:Label id="lbl" runat="server">hoge</asp:Label> */%>
この発想はなかったので、はじめは何してるかわからなかった(コメントアウトとは思わなかった)
まあ、結果は確かに期待したとおりのものになりますが、なんか違うよね。
アクセス時に作成される cs (または vb)ファイルに /* <asp:Label id="lbl" runat="server">hoge</asp:Label> */ つーコメントを埋め込めと命令しているわけで。
まあ、実害はないので放置しておきました。
あ、でもね
<!-- 1999/01/23 Mr.X また猿に負けたため削除 begin -->
<%/* <asp:Label id="lbl" runat="server">hoge</asp:Label> */%>
<!-- 1999/01/23 Mr.X また猿に負けたため削除 end -->
台無しですから(日付・名前・コメントはもちろん適当ですよ)