0

我有这个结构:

#pragma once

#include "Defines.h"

#ifndef _COLOR_H_
#define _COLOR_H_

namespace BSGameFramework
{
namespace Graphics
{
    ref struct Color
    {
        public:

            Color(BYTE r, BYTE g, BYTE b);
            Color(BYTE r, BYTE g, BYTE b, BYTE a);
            Color(Color% color) {};

            static property Color White
            {
                Color get()
                {
                    Color white = gcnew Color(255, 255, 255);

                    return white; // Here the error
                }
            }

        private:

            BYTE r;
            BYTE g;
            BYTE b;
            BYTE a;
    };
}
}

#endif

当我编译文件时,我收到了这个错误:

错误 1 ​​错误 C2664: 'BSGameFramework::Graphics::Color::Color(const BSGameFramework::Graphics::Color %)' : 无法将参数 1 从 'BSGameFramework::Graphics::Color ^' 转换为 'const BSGameFramework:: Graphics::Color %' c:\users\nicola\desktop\directx 证明\bsgameframework\bsgame\Color.h 24 1 BSGame

PS:BYTE在Defines.h中定义为unsigned char

解决了:

我已将属性更改如下:

static property Color^ White
{
    Color^ get()
{
    Color ^white = gcnew Color(255, 255, 255);

    return white;
}
}
4

2 回答 2

1

将属性更改为:

static property Color^ White
{
  Color get()
  {
    Color ^white = gcnew Color(255, 255, 255);

    return white;
  }
}

或者

static property Color White
{
  Color get()
  {
    return Color(255, 255, 255);
  }
}
于 2014-01-03T15:06:51.343 回答
1

const对于托管类型参数没有意义。将构造函数更改为:

Color(Color% color)
于 2014-01-03T14:57:21.470 回答