int에 빈 값을 반환하는 방법 알려주세요~

private int CalcRisk(int sl, int oc, int de)
        {
            int clac = sl * oc * de;
            switch(clac)
            {
                case int n when n >= 1 && n <= 7: return 1;
                case int n when n >= 8 && n <= 26: return 2;
                case int n when n >= 27 && n <= 47: return 3;
                case int n when n >= 48 && n <= 64: return 4;
                case int n when n >= 65 && n <= 125: return 5;
                default: return Convert.ToInt32("");
            }
        }

여기서 디버깅하면 타입이 달라서 에러가 납니다.
근데 ctrl+F5 하면 잘되더라구요;
근데 exe 추출하면 안되더라구요
int에 빈 값으로 반환하고 싶은데 방법은 무엇인지 가르쳐주세요~

아래 내용을 읽어보세요.

C# Nullable 타입 - C# 프로그래밍 배우기 (Learn C# Programming) (csharpstudy.com)

그리고 둘 다 잘 안되고 있을 겁니다ㅎ

네네 이건 이해되는데요
제가 원하는 것은 결과를 “0"이나 true,false로 반환하는 것이 아니라
그냥 빈 값(”"l)으로 반환시키고 싶은것이예요.

반환타입을 int? 로 하고 return null 을 하시면 될듯 싶습니다.

차라리 @bugflow 님이 제시해 주신 이 방법이 제일 현실적인 방법인 것 같네요

우선 만드신 함수가 int를 반환하고 있기 때문에 EmptyString("")을 반환할 순 없습니다.

null반환을 개인적으로 싫어하긴 하지만 이렇게 null을 반환하고 호출측에서 따로 처리하시는 것이 가장 현실적인 방법인 것 같습니다!

호출측에서 처리하시는 방법으로 가신다면 null보단 -1 과 같은 값은 어떠신가요?

뭔가 style 이 node 느낌인데 의도하신 목적대로 엄연히 다른 타입을 반환하는것은
안됩니다. (이렇게 말하면서 무슨 방법이 있나 약간 혼란스럽긴 하군요)
그리고 case 문에서 int 선언할 이유도 없어 보이고
switch 에서 clac 가 들어왔는데 내부문은 쓰지 않는데 좀 이상하네요
@마수리 님 말씀대로 nullable 을 반환하는 개념으로 가야할듯 싶네요
그리고 build 가통과하는것지 코드가 정상이라는것 아닙니다.
excetion 나는 로직이에요 정 하고싶으면 반환 타입을 object 로 하시면 되긴 합니다.

감사합니다!!! 해결됐습니다. 제가 멍청했습니다.
클래스명 앞 타입을 생각못했습니다 ㅠㅠ

자료형의 범위를 잘못 이해하고 계신 것 같습니다.

int는 정수형을 담기 위한 자료형으로 32비트 크기 내에서 표현 가능한 모든 가짓수가 정수 표현만을 목적으로 할당되어 있으며, 그 때문에 빈 값은 존재할 수 없습니다. 굳이 따지면 기본값인 0이 빈 값에 해당한다고 볼 수 있겠네요.

0이나 -1 등 특수한 정수를 예외 목적으로 사용하시던지, 다른 분들 말씀처럼 nullable int 형을 이용하시는 게 옳습니다.

동적 형식하다 넘어온 저도 처음엔 이렇게 접근했는데요.
윗분들 말씀대로 nullable 반환으로 하고, 이후 로직 변경을 추천드립니다.

string 반환으로 변경해도 int 형식변경하면서 빈값 체크를 하게 되더라고요;;;