C# 错误:C中应为类、委托、enm、接口或结构#

C# 错误:C中应为类、委托、enm、接口或结构#,c#,C#,第行错误:public virtual void BuyFavoriteTuff()中的错误 错误:应为类、委托、enm、接口或结构 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace LearnAbstractClass { class Program { static void Main(string[] args)

第行错误:public virtual void BuyFavoriteTuff()中的错误

错误:应为类、委托、enm、接口或结构

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace LearnAbstractClass
{
    class Program
    {
        static void Main(string[] args)
        {
        }
    }

    class Shopper 
    {
        private int TotalSpent=0, CreditLimit=10;
        public void ShopTillYouDrop()
        {
            while (TotalSpent < CreditLimit)
            BuyFavoriteStuff();
        }
    }
    public virtual void BuyFavoriteStuff() 
    {
        // No implementation here - we don’t know
        // what our student likes to buy!
    }

    class ArtStudent : Shopper 
    {
        public override void BuyFavoriteStuff() 
        {
            BuyArtSupplies();
            BuyBlackTurtlenecks();
            BuyDepressingMusic();
        }
        private void BuyBlackTurtlenecks()
        {}
        private void BuyDepressingMusic()
        {}
        private void BuyArtSupplies()
        {}
    }

    class EngineeringStudent : Shopper 
    {
        public override void BuyFavoriteStuff() 
        {
            BuyPencils();
            BuyGraphingCalculator();
            BuyPocketProtector();
        }
        private void BuyPencils()
        {}
        private void BuyGraphingCalculator()
        {}
        private void BuyPocketProtector()
        {}
    }
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
命名空间LearnAbstractClass
{
班级计划
{
静态void Main(字符串[]参数)
{
}
}
班级购物者
{
私人int TotalExplored=0,CreditLimit=10;
公共图书馆
{
while(总支出
上面的实现有什么错误?

您的方法:

public virtual void BuyFavoriteStuff() 
    {
        // No implementation here - we don’t know
        // what our student likes to buy!
    }

它在购物者类之外

您拥有任何类之外的方法:

public virtual void BuyFavoriteStuff() 
{
     // No implementation here - we don’t know
     // what our student likes to buy!
}

只需将其移动到
Shopper
类即可

方法
buyFavoriteTuff
不在类内

  public virtual void BuyFavoriteStuff() 
   {
    // No implementation here - we don’t know
    // what our student likes to buy!
  } 

您应该在类内声明您的方法。

另外两件事:您可以将Shopper类抽象化,如果您没有实现任何逻辑,但需要让派生类实现
BuyFavoriteTuff
您也可以在没有主体的情况下将其标记为抽象。