"We have an old codebase where strings are used as a swiss army knife," writes Jimmi Hested, "almost everything that goes in or out of a function is ends with a .ToString(), even it's already a string... and sometimes even if it already ends with .ToString()."

"Here is a bit of code from our web front-end. Not only is there a try/catch (just to make sure everything works), but the original developer felt a string was way better than a bool."

try
{
    // Check that a valid scheme has been selected
    if (scheme.SelectedValue.Length == 5)
    {
        // Extract the start and end time from the selected scheme
        int tempStartTime = Convert.ToInt32(scheme.SelectedValue.Substring(0,2));
        int tempEndTime = Convert.ToInt32(scheme.SelectedValue.Substring(3,2));

        // Find out which days to show/saves
        string tempMonday = "false";
        string tempTuesday = "false";
        string tempWednesday = "false";
        string tempThursday = "false";
        string tempFriday = "false";
        string tempSaturday = "false";
        string tempSunday = "false";

        if (mondayCheckBox.Checked)
            tempMonday = "true";

        if (tuesdayCheckBox.Checked)
            tempTuesday = "true";

        if (wednesdayCheckBox.Checked)
            tempWednesday = "true";

        if (thursdayCheckBox.Checked)
            tempThursday = "true";

        if (fridayCheckBox.Checked)
            tempFriday = "true";

        if (saturdayCheckBox.Checked)
            tempSaturday = "true";

        if (sundayCheckBox.Checked)
            tempSunday = "true";

        // Save the new settings
        webservice.UpdateSettings(tempStartTime, tempEndTime, tempMonday, 
                                  tempTuesday, tempWednesday, tempThursday, 
                                  tempFriday, tempSaturday, tempSunday, 
                                  pType.SelectedValue);

        label.Text = GetString("SettingsUpdated");
    }
}
catch
{
}

Jimmi added, "it's also worth noting the fact that the datatype to store the true/false values is nvarchar(5). What could possibly go wrong?"

[Advertisement] BuildMaster allows you to create a self-service release management platform that allows different teams to manage their applications. Explore how!