一个很奇怪的问题,共同探讨.

我在做项目的时候建立了几个类位于AppCode文件夹下面:
大致描述如下:
抽象的父类:
public   abstract   class  CodeGenerator
{
    
public virtual string GeneCode();
}
子类:
public   class  ContCodeGene : CodeGenerator
{
    
private ContInfo contInfo;
    
/// <summary>
    
/// 构造器,必须传入一个contInfo信息类来初始化contInfo从而提供一个完善的产生编码所需的代码
    
/// </summary>
    
/// <param name="contInfo"></param>

    public ContCodeGene(ContInfo contInfo)
    
{
        
this.contInfo = contInfo;
    }

    
/// <summary>
    
/// 根据提供的数据简单的格式化并输出一个字符串类型的编号.
    
/// </summary>
    
/// <returns>一个字符串类型的编号</returns>

    public override string GeneCode()
    
{
        
return string.Format("{0}-HT-DJX-{1}-({2})-{3:D4}"this.contInfo.DepartCode, contInfo.Grade1, contInfo.Year, contInfo.Index);
    }

}
这样就可以了.至此未出现错误提示.
后来为了方便测试于是又建立了一个类库项目把他们都放到一个类文件下面,结果父类提示错误
     public   abstract   class  CodeGenerator
    
{
        
public virtual string GeneCode()//就是这里出错了
    }

// 于是只好把GeneCode修改成
      public   abstract   class  CodeGenerator
    
{
        
public virtual string GeneCode()
        
{}
     }

// 这样就好了
// 或者是修改成
      public   abstract   class  CodeGenerator
    
{
        
public abstrace string GeneCode()//就是这里出错了
    }

// 这样也可以

// 我知道是因为Virtual必须要有方法体,可以不实现,但是为什么原来的时候没有提示错误,是Visual 
// Studio的错误么?

你可能感兴趣的:(问题)