1. C# / Говнокод #4744

    +122

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    public enum SqlCallType {
    		Text = 1,
    		StoredProcedure = 2
    	}
    
    		private SqlCallType ConvertToSqlCallType(int sqlCallType) {
    			SqlCallType type = (SqlCallType)0;
    			if (sqlCallType == (int)SqlCallType.Text) {
    				type = SqlCallType.Text;
    			}
    			else if (sqlCallType == (int)SqlCallType.StoredProcedure) {
    				type = SqlCallType.StoredProcedure;
    			}
    			return type;

    приведение enum-->int по индусски для enum'а с двумя значениями....

    Запостил: Unknown_2, 25 Ноября 2010

    Комментарии (3) RSS

    • ошибки не вываливается на этой инструкции?
      SqlCallType type = (SqlCallType)0;
      Ответить
      • не ;)

        вообще-то имено так и прводится, как правило:
        вместо:
        var a = ConvertToSqlCallType(b);
        пишут:
        var a = (SqlCallType)b;

        а если нужны проверки - то уже отдельынй вопрос.
        Ответить
        • не, я имел в виду не то, что ошибка может из-за приведения инта к енуму возникнуть, а то что в исходном енуме SqlCallType нет члена со значением 0; странно как-то даже, что ошибка не вываливается...

          а какое значение содержится в переменной type после выполнения инструкции SqlCallType type = (SqlCallType)0?
          Ответить

    Добавить комментарий