C# Not All Code Paths Return A Value C# Hatası

Not All Code Paths Return A Value hatası genelde geriye değer gönderen metotlarda return ifadesinin yanlış, eksik veya fazla yazılmasında dolayı oluşur. hemen bir örnek yapalım..

static void Main(string[] args)
        {
            Console.WriteLine("Birinci Sayı");
            int a = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("İkinci Sayı");
             int b = Convert.ToInt32(Console.ReadLine());
             Console.WriteLine("İşlem (+,-,*,/)");
            string c = Console.ReadLine();
            Console.WriteLine("Sonuç= "+islem(a,b,c));
            Console.ReadKey();
        }
        static int islem(int s1, int s2, string d)
        {
            if (d == "+")
            {
                return s1+s2;
            }                      
        }

notallcodepathsreturnavaluec
bu kodları yazıp çalıştırdığımız zaman “(int, int, string)’: not all code paths return a value” şeklinde bir hata mesajı alacağız çünkü islem metodunda kullanılan if koşullarının sağlanamama olasılığı olabileceğinden dolayı bir hata veriyor.
hatayı gidermek için kodlamayı aşağıdaki gib değiştiriyoruz.

 static void Main(string[] args)
        {
            Console.WriteLine("Birinci Sayı");
            int a = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("İkinci Sayı");
             int b = Convert.ToInt32(Console.ReadLine());
             Console.WriteLine("İşlem (+,-,*,/)");
            string c = Console.ReadLine();
            Console.WriteLine("Sonuç= "+islem(a,b,c));
            Console.ReadKey();
        }
        static int islem(int s1, int s2, string d)
        {
            if (d == "+")
            {
                return s1 + s2;
            }
            else if (d=="*")
            {
                return s1 * s2;
            }
            else
            {
                return 0;
            }           
                    }