'object'不包含带3个参数的构造函数

时间:2011-07-14 14:09:26

标签: constructor xna geometry arguments

我正在尝试在XNA 4.0中生成球形地形,并且正在使用二十面体来实现具有均匀分布顶点的球体。我对Xna很新,我遇到了这个问题,试图创建一个类来处理球体的所有顶点。

这是代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;

namespace Icosahedron_Test
{
    class Icosahedron
    {

        public Icosahedron(int radius, int refinement, Vector3[] vertices)
            : base(radius, refinement, vertices)
        {
        }


    }
}

另外,如果有人知道如何创建二十面体,或者可以指导我一个教程,我会非常感激XD

2 个答案:

答案 0 :(得分:3)

在您的代码示例中,您正在定义一个名为Icosahedron的新类。

您提供的代码称为构造函数,这是一种用于实例化新对象的特殊方法。

public Icosahedron(int radius, int refinement, Vector3[] vertices)
        : base(radius, refinement, vertices)

写作时

  

:base(....)

您正在尝试调用您正在定义的当前类的基本调用。

C#支持一种名为Inheritance的机制,它允许通过扩展另一个类来扩展对象的行为。这可以用于添加/覆盖一些父对象的行为和能力。

在C#中,所有对象都是从System.Object派生的,因此,在您的代码中,您尝试使用3个参数调用System.Object的构造函数,但System.Object不存在此构造函数方法。

你需要对C#有一个很好的阅读以掌握基础知识:)

答案 1 :(得分:0)

您的Icosahedron继承object

正如错误消息明确指出的那样,您无法调用base(...),因为object没有这样的构造函数。