星期四, 11月 10, 2016

[C#] 避免 Hard Code

論壇上偶而會看見的寫法
comboBox1.GetType().ToString() == "System.Windows.Forms.ComboBox"
該寫法程式會正確判斷也不會有任何異常,但根本是挑戰自我專注力,只要打錯任何一個字,就變成 false,會建議改成下列寫法
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        private void Form1_Load(object sender, EventArgs e)
        {
            StringBuilder sb = new StringBuilder();

            // 利用 Type 判斷
            if (comboBox1.GetType() == typeof(ComboBox))
                sb.AppendLine("Type 判斷:Yes");
            else
                sb.AppendLine("Type 判斷:NO");

            // 利用 ToString() 字串判斷
            if (comboBox1.GetType().ToString() == "System.Windows.Forms.ComboBox")
                sb.AppendLine("ToString() 字串判斷:Yes");
            else
                sb.AppendLine("ToString() 字串判斷:NO");

            // 利用 ToString() 字串判斷,故意大小寫錯一個
            if (comboBox1.GetType().ToString() == "System.Windows.Forms.Combobox")
                sb.AppendLine("ToString() 字串判斷,故意大小寫錯一個字:Yes");
            else
                sb.AppendLine("ToString() 字串判斷,故意大小寫錯一個字:NO");

            MessageBox.Show(sb.ToString(), "控件判斷", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
    }
}
[C#] 避免 Hard Code

沒有留言:

張貼留言