【问题标题】:Error: Expected class, delegate, enm, interface, or struct in C#错误:C# 中的预期类、委托、enm、接口或结构
【发布时间】:2013-11-27 10:32:34
【问题描述】:

行错误:public virtual void BuyFavoriteStuff()

错误:预期的类、委托、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()
        {}
    }
}

上面的实现有什么问题?

【问题讨论】:

  • 另外两件事:您可以使 Shopper 类抽象,如果您不实现任何逻辑,但需要让派生类实现BuyFavoriteStuff,您也可以将其标记为抽象而无需主体。

标签: c#


【解决方案1】:

你的方法:

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

它在 Shopper 类之外

【讨论】:

    【解决方案2】:

    你有任何类之外的方法:

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

    只需将其移至Shopper 类。

    【讨论】:

      【解决方案3】:

      方法BuyFavoriteStuff不在类中

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

      你应该在类中声明你的方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-23
        • 1970-01-01
        • 2016-04-09
        • 1970-01-01
        • 2012-07-05
        相关资源
        最近更新 更多