C# 程序*不包含静态';主要';方法适用于带有代码的入口点*
我的家庭作业是制作一个程序,由两个独立的项目组成,包含正方形、矩形和平行六面体的类,并且能够计算它们的面积。我认为我已经正确地完成了所有工作并连接了项目,但当我尝试编译代码时,我一直收到以下错误消息: 程序*不包含适合入口点的静态“Main”方法 我的两个项目都有静态的Main方法 第一个项目C# 程序*不包含静态';主要';方法适用于带有代码的入口点*,c#,oop,C#,Oop,我的家庭作业是制作一个程序,由两个独立的项目组成,包含正方形、矩形和平行六面体的类,并且能够计算它们的面积。我认为我已经正确地完成了所有工作并连接了项目,但当我尝试编译代码时,我一直收到以下错误消息: 程序*不包含适合入口点的静态“Main”方法 我的两个项目都有静态的Main方法 第一个项目 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Thr
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace zad8
{
public abstract class CFormulas
{
abstract public double S();
abstract public double P();
abstract public double SF();
abstract public double V();
}
public class CSquare : CFormulas
{
double a { get; set; }
public CSquare(double a)
{ this.a = a; }
public override double S() { return a * a; }
public override double P() { return 4 * a; }
}
public class CRectangular : CFormulas
{
public double a { get; set; }
public double b { get; set; }
public CRectangular(double a, double b)
{
this.a = a;
this.b = b;
}
public override double S() { return a * b; }
public override double P() { return 2 * (a + b); }
}
class zad
{
static void Main(string[] args)
{
CSquare f1 = new CSquare(5);
Console.WriteLine("Лицето на квадрата е {0}, а периметъра е {1}.", f1.S(), f1.P());
CRectangular f2 = new CRectangular(2, 3);
Console.WriteLine("Лицето на правоъгълника е {0}, а периметъра е {1}.", f2.S(), f2.P());
Console.ReadKey(true);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using zad8;
namespace zad8
{
class CParallelepiped : CRectangular
{
public CParallelepiped(double a, double b, double h) : base(a, b) {
this.h = h;
this.a = a;
this.b = b;
}
double h { get; set; }
//public CParallelepiped(double h) { this.h = h; }
public override double SF() { return 2 * (a*b+b*h+h*a); }
public override string ToString()
{
return string.Format("Пълната повърхнина на фигурата е {0}",SF());
}
public override double V() { return a*b* h; }
public override string ToString() { return string.Format("Обема на фигурата е {0}", V()); }
}
class Program
{
static void Main(string [] args)
{
//CParallelepiped f3 = new CParallelepiped(1,2,3);
//Console.WriteLine("Пълната повърхнина на паралелепипеда е {0}.", f3.SF());
Console.ReadKey(true);
}
}
}
第二个项目
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace zad8
{
public abstract class CFormulas
{
abstract public double S();
abstract public double P();
abstract public double SF();
abstract public double V();
}
public class CSquare : CFormulas
{
double a { get; set; }
public CSquare(double a)
{ this.a = a; }
public override double S() { return a * a; }
public override double P() { return 4 * a; }
}
public class CRectangular : CFormulas
{
public double a { get; set; }
public double b { get; set; }
public CRectangular(double a, double b)
{
this.a = a;
this.b = b;
}
public override double S() { return a * b; }
public override double P() { return 2 * (a + b); }
}
class zad
{
static void Main(string[] args)
{
CSquare f1 = new CSquare(5);
Console.WriteLine("Лицето на квадрата е {0}, а периметъра е {1}.", f1.S(), f1.P());
CRectangular f2 = new CRectangular(2, 3);
Console.WriteLine("Лицето на правоъгълника е {0}, а периметъра е {1}.", f2.S(), f2.P());
Console.ReadKey(true);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using zad8;
namespace zad8
{
class CParallelepiped : CRectangular
{
public CParallelepiped(double a, double b, double h) : base(a, b) {
this.h = h;
this.a = a;
this.b = b;
}
double h { get; set; }
//public CParallelepiped(double h) { this.h = h; }
public override double SF() { return 2 * (a*b+b*h+h*a); }
public override string ToString()
{
return string.Format("Пълната повърхнина на фигурата е {0}",SF());
}
public override double V() { return a*b* h; }
public override string ToString() { return string.Format("Обема на фигурата е {0}", V()); }
}
class Program
{
static void Main(string [] args)
{
//CParallelepiped f3 = new CParallelepiped(1,2,3);
//Console.WriteLine("Пълната повърхнина на паралелепипеда е {0}.", f3.SF());
Console.ReadKey(true);
}
}
}
在您的实现中有几个问题,但主要方法不是其中之一
- 您需要实现所有抽象成员
- 在
CParallelepiped
- 您可能不应该从其他控制台应用引用控制台应用。使用类库来代替
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using zad8;
namespace zad8
{
public abstract class CFormulas
{
abstract public double S();
abstract public double P();
abstract public double SF();
abstract public double V();
}
public class CSquare : CFormulas
{
double a { get; set; }
public CSquare(double a)
{ this.a = a; }
public override double S() { return a * a; }
public override double P() { return 4 * a; }
public override double SF()
{
throw new NotImplementedException();
}
public override double V()
{
throw new NotImplementedException();
}
}
public class CRectangular : CFormulas
{
public double a { get; set; }
public double b { get; set; }
public CRectangular(double a, double b)
{
this.a = a;
this.b = b;
}
public override double S() { return a * b; }
public override double P() { return 2 * (a + b); }
public override double SF()
{
throw new NotImplementedException();
}
public override double V()
{
throw new NotImplementedException();
}
}
class CParallelepiped : CRectangular
{
public CParallelepiped(double a, double b, double h) : base(a, b) {
this.h = h;
this.a = a;
this.b = b;
}
double h { get; set; }
//public CParallelepiped(double h) { this.h = h; }
public override double SF() { return 2 * (a*b+b*h+h*a); }
public override double V() { return a*b* h; }
public override string ToString() { return string.Format("Обема на фигурата е {0}", V()); }
}
class Program
{
static void Main(string [] args)
{
//CParallelepiped f3 = new CParallelepiped(1,2,3);
//Console.WriteLine("Пълната повърхнина на паралелепипеда е {0}.", f3.SF());
Console.ReadKey(true);
}
}
}
您确定问题不在于
CSquare
/CRectangle
上缺少的SF
/V
覆盖吗?添加这些,它会为我编译…注意:其中一个构建选项是一个开关,告诉它在中查找Main
方法的类型。。。如果您指定了,但指定不正确:它将不起作用。尝试更改该值-它是项目属性中的“应用程序”选项卡上的“启动对象”,或作为问题的一部分在csprojPost代码中的
,而不是在pastebin上。