public abstract class abc
    {
        internal virtual string getabc()
        {
        }
    }    internal class ABC : abc
    {
        internal override string getabc()
        {
            return "ccccccccc";
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
      
            ABC Abc = new ABC();
            Console.WriteLine(Abc.getabc());
            Console.ReadKey();
        }
    }
错误 1 “ConsoleApplication1.abc.getabc()”: 并非所有的代码路径都返回值

解决方案 »

  1.   

    using System;
    using System.Windows.Forms;  public abstract class abc
        {
            internal abstract string getabc();
        }    internal class ABC : abc
        {
            internal override string getabc()
            {
                return "ccccccccc";
            }
        }
        class Program
        {
            static void Main(string[] args)
            {
          
                ABC Abc = new ABC();
                Console.WriteLine(Abc.getabc());
                Console.ReadKey();
            }
        }
      

  2.   

      public abstract class abc
        {
            internal virtual string getabc()
            {
            }
        }
    ==
      public abstract class abc
        {
            internal virtual string getabc();
        }请楼主注意命名规范,类名首字母应该大写,C#中方法名也习惯首字母大写
      

  3.   

        public abstract class abc
        {
            // 抽象方法不要方法体。
            internal abstract string getabc();
        }
        public abstract class abc
        {
            // 虚方法必须提供默认实现,所以要有返回值。
            internal virtual string getabc()
            {
              return "";
            }
        }上面两个方案,你选择一个:
    抽象方法不要方法体。
    而虚方法必须提供默认实现,所以要有返回值。
      

  4.   

    定义虚拟方法时不须要写;
    {}吗?
    如楼上的这句:internal abstract string getabc();如果要重写基类的方法时。不要用override定义此方法为可写的吗?
      

  5.   


    Microsoft (R) Visual C# 2005 编译器 版本 8.00.50727.1433
    用于 Microsoft (R) Windows (R) 2005 Framework 版本 2.0.50727
    版权所有 (C) Microsoft Corporation 2001-2005。保留所有权利。Program.cs(6,33): error CS0501: “abc.getabc()”必须声明主体,因为它未标记为 abstract 或 extern
      

  6.   

    sorry ,我看错了,以为是abstract的方法